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

QT QString

QString::fromStdString 崩溃 (c++)

QT QString 与 int 转化

Qt char * 转QString