QString的许多成员函数都被重载了,用于接收const char *。包括拷贝构造函数、分配符、操作符

insert()、replace()、indexOf()。上述的函数都被优化避免const char *传入后调用拷贝构造函数。

如下例子,假如str为QString。

  if (str == "auto" || str == "extern"|| str == "static" || str == "register") {...}

会比下面这种操作更加的快:

  if (str == QString("auto") || str == QString("extern")|| str == QString("static") || str == QString("register")) {...}

下面这种方式调用了4次QString的构造函数,会深拷贝里面的数据内容。

如果项目中定义了QT_NO_CAST_FROM_ASCII,就不能直接调用QString的const char *这个API。

在.pro文件中定义

DEFINES += QT_NO_CAST_FROM_ASCII

Qt提供了QLatin1String类,这个是对const char *的简单封装,使用QLatin1String的代码如下:

  if (str == QLatin1String("auto")|| str == QLatin1String("extern")|| str == QLatin1String("static")|| str == QLatin1String("register") {...}

这种相似效率和

  if (str == "auto" || str == "extern"|| str == "static" || str == "register") {...}

这种的一致。

QString(QLatin1String)的这个构造函数,使得开发越来越方便

QLabel *label = new QLabel(QLatin1String("MOD"), this);

下面是关于文本段跨行的赋值

有三种方式:

①每一行用引号引起了,在换行的地方加\斜线;

②每一行用引号引起了;

③R"()"包裹。

代码如下:

#include <QCoreApplication>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);const auto cmd1 = QLatin1String("Hello World""Hello World""Hello World""Hello World");const auto cmd2 = QLatin1String(R"(Hello WorldHello WorldHello WorldHello World)");const auto cmd3 = QLatin1String("Hello World"\"Hello World"\"Hello World"\"Hello World");const auto cmd4 = QString("Hello World\r\n"\"Hello World\r\n"\"Hello World\r\n"\"Hello World\r\n");qDebug() << "cmd1:" << cmd1;qDebug() << "cmd2:" << cmd2;qDebug() << "cmd3:" << cmd3;qDebug() << "cmd4:" << cmd4;return a.exec();
}

程序运行截图如下:

Qt文档阅读笔记-QLatin1String解析及文本段跨行赋值相关推荐

  1. Qt文档阅读笔记-Q_PROPERTY解析及实例

    目录 官方解析 博主栗子 官方解析 这个宏用于继承于QObject的类声明属性.这样声明后的属性行为与类数据成员一样,但是他们可以通过元对象系统进行访问. Q_PROPERTY(type name(R ...

  2. Qt文档阅读笔记-QIODevice解析及Audio Example实例解析

    目录 QIODevice官方解释及个人分析 Audio Example官方实例解析 QIODevice官方解释及个人分析 QIODevice类是Qt中I/O设备的接口. 提供了读和写的接口,QIODe ...

  3. Qt文档阅读笔记-QQmlApplicationEngine解析与实例(qml与C++混合编程及QQuick与widgets混合)

    目录 官方解析 博主例子 官方解析 QQmlApplicationEngine提供了从一个QML文件里面加载应用程序的方式. 这类联合了QQmlEngine和QmlComponent去加载单独的QML ...

  4. Qt文档阅读笔记-Transformations解析及例子

    目录 官方解析 博主小栗子 官方解析 QGraphicsItem除了基于他的坐标pos()外,还支持投影变化.下面提供了几种变化item的方式.下面来说明下简单的转换,可以通过调用setRotatio ...

  5. Qt文档阅读笔记-QScopedPointer解析及实例

    当指针超出范围后就会删除被引用的对象. 与QPointer不同,他可以在任意类型中使用(QPointer只能在identity type中使用) 4个不同的清除类         1. QScoped ...

  6. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  7. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  8. Qt文档阅读笔记-Rotations Example相关

    Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...

  9. Qt文档阅读笔记-Fortune Client Example实例解析

    目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...

最新文章

  1. 【Animations】使用缩放动画放大视图(7)
  2. React 18 RC 版本发布啦,生产环境用起来!
  3. 剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!
  4. for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...
  5. Python打印指定日期日历
  6. h5外卖源码php_从零搭建外卖CPS平台小程序开发
  7. 神奇的反爬措施--大众点评
  8. python中ahp的代码_AHP | 层次分析法原理及Python实现
  9. C++ 使用sqrt函数计算平方根
  10. php 双引号 转义字符,php中的单引号、双引号和转义字符
  11. 数据分析入门系列教程-SVM实战
  12. lineageos信号叉号_Z1刷lineage os 14.1 15.1官方版后信号上叉号的清除教程
  13. C语言 习题3-1 比较大小 (简单解法)
  14. R packages:fNonlinear———bdsTest——BDS检验
  15. 无法安装64(32)office,已经安装32(64)office解决方法
  16. 怎么修改ftp服务器被动端口,如何设置vsftp的被动模式端口
  17. 景区怎么防止年票卡多人使用?
  18. Rk3128 按键驱动
  19. 信息系统五阶段生命周期模型
  20. lepus天兔数据库监控系搭建

热门文章

  1. C++中的 .h 和 .cpp 区别详解
  2. 对动画教程的坐标反转公式求证
  3. 一首歌,一种情感,一种心情
  4. TreeView 数据库绑定实例
  5. Ubuntu下安装和配置Apache及Apache2
  6. 管理低代码公民开发人员的8个技巧
  7. 一名老程序员的一点感悟给未来的程序员
  8. 飞鸽传书2008一种重要心态
  9. 成员函数指针与高性能的C++委托(中篇)
  10. 乌班图linux怎么连手机热点,使用Ubuntu12.04创建无线WiFi热点供手机上网