Qt文档阅读笔记-QLatin1String解析及文本段跨行赋值
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解析及文本段跨行赋值相关推荐
- Qt文档阅读笔记-Q_PROPERTY解析及实例
目录 官方解析 博主栗子 官方解析 这个宏用于继承于QObject的类声明属性.这样声明后的属性行为与类数据成员一样,但是他们可以通过元对象系统进行访问. Q_PROPERTY(type name(R ...
- Qt文档阅读笔记-QIODevice解析及Audio Example实例解析
目录 QIODevice官方解释及个人分析 Audio Example官方实例解析 QIODevice官方解释及个人分析 QIODevice类是Qt中I/O设备的接口. 提供了读和写的接口,QIODe ...
- Qt文档阅读笔记-QQmlApplicationEngine解析与实例(qml与C++混合编程及QQuick与widgets混合)
目录 官方解析 博主例子 官方解析 QQmlApplicationEngine提供了从一个QML文件里面加载应用程序的方式. 这类联合了QQmlEngine和QmlComponent去加载单独的QML ...
- Qt文档阅读笔记-Transformations解析及例子
目录 官方解析 博主小栗子 官方解析 QGraphicsItem除了基于他的坐标pos()外,还支持投影变化.下面提供了几种变化item的方式.下面来说明下简单的转换,可以通过调用setRotatio ...
- Qt文档阅读笔记-QScopedPointer解析及实例
当指针超出范围后就会删除被引用的对象. 与QPointer不同,他可以在任意类型中使用(QPointer只能在identity type中使用) 4个不同的清除类 1. QScoped ...
- Qt文档阅读笔记-共享库的创建与调用
使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...
- Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图
Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...
- Qt文档阅读笔记-Rotations Example相关
Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...
- Qt文档阅读笔记-Fortune Client Example实例解析
目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...
最新文章
- 【Animations】使用缩放动画放大视图(7)
- React 18 RC 版本发布啦,生产环境用起来!
- 剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!
- for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...
- Python打印指定日期日历
- h5外卖源码php_从零搭建外卖CPS平台小程序开发
- 神奇的反爬措施--大众点评
- python中ahp的代码_AHP | 层次分析法原理及Python实现
- C++ 使用sqrt函数计算平方根
- php 双引号 转义字符,php中的单引号、双引号和转义字符
- 数据分析入门系列教程-SVM实战
- lineageos信号叉号_Z1刷lineage os 14.1 15.1官方版后信号上叉号的清除教程
- C语言 习题3-1 比较大小 (简单解法)
- R packages:fNonlinear———bdsTest——BDS检验
- 无法安装64(32)office,已经安装32(64)office解决方法
- 怎么修改ftp服务器被动端口,如何设置vsftp的被动模式端口
- 景区怎么防止年票卡多人使用?
- Rk3128 按键驱动
- 信息系统五阶段生命周期模型
- lepus天兔数据库监控系搭建