字符串连接
QString("1")+QString("2");
QString("1")+"3";
QString("1")+QChar('A');
QString("%1%2").arg("2","333");
QString("%1%2").arg("aa").arg("bb");
与C的sprintf一样
QString("1").sprintf("%s","123 ");
插入到指定索引
QString("122").insert(1,"qqqqq");
插入字符串到后面
QString buff("1");
(buff.push_back("aa"),buff);
QString("1").append("aaaa");
QString("1").append(QChar(')'));
QString("1").append(QChar('q'));
QString("1").append("aaaa");
QString("1").append(QChar(')'));
插入字符串到前面
QString("1").prepend(" aaaa");
(buff.push_front("bb"),buff);
查找字符串
QString("abc")[1];
QString("abc").at(2);
QString("1234AAA611").indexOf("A");
QString("1234AAA611").indexOf("A",6);
QString("1234AAA611").indexOf("A",7);
QString("1234AAA611").lastIndexOf("A");
QString("1234AAA611").startsWith("123");
QString("1234AAA611").endsWith("611");
替换字符串
QString("aa").leftJustified(5,'.');
QString("aaaa5555").replace('a',"&");
QString("1234AAA611").replace("AAA","555");
截断字符串
保留 前面 5个字符
QString("1234AAA611").left(5);
保留 后面 5个字符
QString("1234AAA611").right(5);
从索引 2 开始保留 3 个字符
QString("1234AAA611").mid(2,3);
删除字符串 "AAA"
QString("1234AAA611").replace("AAA","");
QString("1234AAA611").remove("AAA");
QString("1234AAA611").remove(1,5);
如果超过 3 个字符就保留 3 个字符,否则不足替换为 '.'
QString("abc555d").leftJustified(3,'.',true);
移除两端空白
QString(" 123 ").trimmed();
把首尾空白全部清除,中间空白转义转换为一个空格
QString(" 12\t\r\n3 ").simplified();
转换大小
转换为大写
QString("abcd").toUpper();
转换为小写
QString("QA").toLower();
数字转换字符串
QString::number(100);
转换为 16 进制
QString::number(123,16);
转换为 16 进制,不足 8 位前面补 ‘0’
QString("%1").arg(123,8,16,QLatin1Char('0'));
转换为 8 进制
QString("0%1").arg(QString::number(100,8));
QString::number(.777);
QString::number(.777,'f',1);
QString::number(.0001,'f',2);
QString::number(.0001,'g');
QString::number(.00001,'g');
QString::number(3.145);
字符串转换数字
bool ok;
QString("123").toInt();
ok为转换是否成功
QString("076").toInt(&ok,8);
QString("AF").toInt(&ok,16);
只有 3 为小数
QString("123.233333").toFloat();
QString("123.233333").toDouble();
只有这种写法才能正确返回浮点数
QString("123456e-9").toDouble();
QString("1234.56e-5").toDouble();
分割字符串
返回分割出来的索引为 2 的字符串
QString("1,2,3,4").split(',')[2];
返回从 2 开始 3 结束的分割的数组合成后的字符串
QString("1,2,3,4,5").section(',',2,3);
字符串和枚举转换
1508141603819346.png
QMetaEnum metaEnum = QMetaEnum::fromType<Cenum::Priority>();
返回枚举名字
metaEnum.valueToKey(Cenum::VeryHigh);
返回枚举值
metaEnum.keysToValue("VeryHigh");
必须使用 Q_ENUM 宏对枚举类型进行元类型注册
该宏是5.5版本引入的,之前的版本不能使用
类型转换
QString 转换 QByteArray
QString("abc").toAscii();
QString("abc").toLatin1();
QByteArray 转换 QString
QByteArray bytes;
bytes.resize(2);
bytes[0] = '1';
bytes[1] = '2';
QString str = bytes;
QString 转换 char*
(QString("abc").toLatinl()).data();
《完美Qt》之QString使用实例
最新推荐文章于 2024-04-22 23:47:11 发布