QString
Posted yaked19
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QString相关的知识,希望对你有一定的参考价值。
QString转为整形或浮点数
转为整形
str.toInt();
str.toLong();
str.toShort();
str.toUInt();
str.toULong();
转为浮点数
str.toDouble();
str.toFloat();
QString str = ui->editNum->text();
int num = str.toInt(); // str转int
str = ui->editPrice->text();
float price = str.toFloat(); // str转float
float total = num * price;
str = str.sprintf("%.2f", total);// 格式化str,两位小数
ui->editTotal->setText(str);
全局静态函数进行转换 str = QString::number(total, 'f', 2); // Warning: We do not recommend using QString::asprintf() in new Qt code. Instead, consider using QTextStream or arg() str = QString::asprintf("%.2f", total); str = QString("total= %1").arg(total, 0, 'g', 2); 调用公有函数 str = str.setNum(total, 'f', 2); str = str.sprintf("%.2f", total);
进制转换
QString str = ui->editNum->text();
int num = str.toInt(); // str转int
str = ui->editPrice->text();float price = str.toFloat(); // str转float
float total = num * price;
str = str.sprintf("%.2f", total);// 格式化str,两位小数
ui->editTotal->setText(str);
bool ok;
int val=str.toInt(&ok,2);//以二进制数读入
QString的常用函数
trimmed()去掉字符串首尾的空格,simplified()不仅去掉首尾的空格,中间连续的空格也用一个空格替换。
QString str1 = " Are you OK? ", str2, str3;
str2 = str1.trimmed(); // str2="Are you OK?"
str3 = str1.simplified(); // str3="Are you OK?"
left()、right()、section()、indexOf()、lastIndexOf()
QString str1 = "C:\\\\Windows\\\\QtStudy\\\\hello.cpp";
// QString str1 = "G:/Qt5/QTStudy/qt.cpp";
int N = str1.lastIndexOf("\\\\"); // N=18,从头开始数的,起始为0
QString fileName = str1.right(str1.size() - N - 1); // hello.cpp从右27-18-1, 起始为0
QString str2 = str1.section("\\\\", 3, 3);\\\\ 0,1,2,3
int N2 = str1.lastIndexOf(".");
QString filePath = str1.left(N2) + "_changed.txt";
以上是关于QString的主要内容,如果未能解决你的问题,请参考以下文章
Qt中的QString::sprintf和QString::arg有啥区别?
将 QMultiMap<QString, QString> 导出到 QML