QLatin1String类的说明
来源:互联网 发布:php sendmail path 编辑:程序博客网 时间:2024/06/05 07:13
QLatin1String类对US-ASCII/Latin-1编码的字符串进行了简单封装,可理解为关于const char*的一个浅封装。
许多QString的成员函数都用const char*代替QString作为参数实现重载。这包含拷贝构造函数,赋值操作,比较操作和其他不同的函数,比如insert(), replace(), indexOf(). 这些函数都做了优化以避免在函数调用时从const char*中构造一个QString对象。例如,假定str是QString对象,
if (str == "auto" || str == "extern" || str == "static" || str == "register") { ...}上面的代码执行会比下面的代码执行快很多
if (str == QString("auto") || str == QString("extern") || str == QString("static") || str == QString("register")) { ...}
因为在第二部分的代码中会构造四个临时的QString对象,并复制字符串中的值。
在程序中定义了QT_NO_CAST_FROM_ASCII的应用程序是无法使用QString的const char*相关的API函数,因此Qt提供了QLatin1String类来更高效的利用const char*的类型,它就是一个关于const char*的一个浅封装。如果利用QLatin1String类来写上述的程序就是
if (str == QLatin1String("auto") || str == QLatin1String("extern") || str == QLatin1String("static") || str == QLatin1String("register") { ...}
虽然在代码输入的时候有点长,但是它的执行效率和上面第一段的代码一样,同时也比使用QString::fromLatin1()转换来的快。
得益于QString(const QLatin1String&)这个构造函数,QLatin1String可以在任何需要QString对象的地方使用,比如:
QLabel *label = new QLabel(QLatin1String("MOD"), this);
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
QString str = "hello" 报错:
在程序中定义了QT_NO_CAST_FROM_ASCII的应用程序是无法使用QString的const char*相关的API函数,因此Qt提供了QLatin1String类来更高效的利用const char*的类型,它就是一个关于const char*的一个浅封装。
只要在 .pro文件里面
DEFINES += \ QT_NO_CAST_FROM_ASCIIchar*就不能转换成QString,这时候就可以用 QLatin1String来代替在所有需要QString的地方。
- QLatin1String类的说明
- QLatin1String类的学习
- QLatin1String类的学习
- QLatin1String类的学习
- QLatin1String类的学习
- QLatin1String类的学习
- QLatin1String类
- SwingUtilities类的说明
- Scanner类的说明
- Spring类的说明
- 抽象类的说明
- CXTPHexEdit类的说明
- 类的继承说明
- NSIndexPath类的说明
- .container类的说明
- 类模板的说明
- 类的说明
- 类的友元类的说明
- 43 C语言数据输出大汇总以及轻量进阶
- 浅析Java中的final关键字
- 听云集成
- QT图片拉伸填充
- I2C协议介绍
- QLatin1String类的说明
- 《C++覆辙录》——1.9:使用糟糕的语言
- 【JMeter 菜鸟实操之四】接口自动化测试实施(数据驱动)
- webuploader 文件上传插件 IE8/9 文件选择不上传
- 解锁各行业难题,联想全面开放AR应用平台AH云
- spring boot应用启动原理分析
- SAP-HANA快速创建序列
- HDU 2197 本原串 (数学+容斥)
- 持续集成Jenkins+sonarqube部署教程