时间:2021-05-20
Qt的QString类提供了很方便的对字符串操作的接口,QString没有继承任何Qt基类。
%1, %2, %3作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成1,%2将被替换成2.0,%3将被替换成"hello"。输出为:"1 2 hello"
QString
QStringstr.sprintf("%d %s", 10, "hello");Qt的QByteArray类提供了很方便的对字节流操作的接口,QByteArray没有继承任何Qt基类。
例如:0x31一个字节会转换成"31"两个字节
QByteArray byte("123456");QByteArray byteHex = byte.toHex();qDebug() << "byte:" << byte << "byteHex:" << byteHex << endl;输出:byte: "123456" byteHex: "313233343536"
例如:"31"会转换成0x31一个字节, 需要注意它是一个静态函数
QByteArray byte("31323334");QByteArray byteFromHex = QByteArray::fromHex(byte);qDebug() << "byte:" << byte << "byteFromHex:" << byteFromHex << endl;输出: byte: "31323334" byteFromHex: "1234"
输出:str: 123456
QString是专门用来处理字符串的,除了能处理ASCII编码字符,还包括各国语言的编码,默认情况下QString会把所有数据当做utf-8编码来处理。QByteArray只是单纯用来处理数据的,除了能处理ASCII编码字符,其它复杂的编码不能处理,直接以字节流的方式来对待。
看下面一个例子:
QString str("小马哥");QByteArray byte("小马哥");qDebug() << "str:" << str << "byte:" << byte << endl;输出结果:str: "小马哥" byte: "\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5",str保留编码格式,能输出中文,但是QByteArray只把"小马哥"当做普通的字节数据来处理,utf-8编码下,一个汉字占三个字节。
输出结果:byte1: "123abc???" byte2: "123abc\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5"
输出结果:byte: "123abc\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5" str: "123abc小马哥"
QString类型无法直接转换成char*, 需要先转换成QByteArray, 然后再转char*
QString str("123abc小马哥");QByteArray byte = str.toUtf8();char* str1 = byte.data();本文主要讲解了Qt开发中QString与QByteArray详细用法与区别及QString QByteArray互转,QByteArray转char*、QString转char*、更多源于Qt开发知识请查看下面的相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
介绍QString使用正则操作的接口。Qt5.0引入QRegularExpression,相比于QRegExp,前者修复了很多bugs,功能上也是兼容于QReg
br与p标签区别,br和p标签认识之div+css开发时候常用换行标签。接下来,我们介绍下html中常遇见和常用到的和标签之间的区别及用法,以及使用css对他们
如何编译安装QChart请查看下面文章Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例使用Qt曲线图表模块Chart库首先要注意3点:(1)
一、QString赋值给char*例如:QStringqstr;char*str=qstr.toLatin1().data();//这样便把qstr中的值传给了
java基础之Collection与Collections和Array与Arrays的区别1.Collection在Java.util下的一个接口,它是各种集合