本文共 1769 字,大约阅读时间需要 5 分钟。
QString QString::arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
1、QString格式化arg前面自动补0
int seconds = m_calc.elapsed() / 1000;int hour = int(seconds / 3600);int min = int((seconds - hour * 3600) / 60);int sec = seconds % 60;//QString格式化arg前面自动补0QString str = QString("%1:%2:%3").arg(hour, 2, 10, QLatin1Char('0')).arg(min, 2, 10, QLatin1Char('0')).arg(sec, 2, 10, QLatin1Char('0'));QStringList list;list << tr("%1").arg(hour) << tr("%1").arg(min) << tr("%1").arg(sec);int val = 16;//0fQString str = QString("%1").arg(val & 0xFF, 2, 16, QLatin1Char('0')); //0016QString str = QString("%1").arg(val, 4, 10, QLatin1Char('0'));//4代表宽度,10表示10进制,空位补零
2、进制转换
QString ss = QString("十进制64转为十六进制%1").arg(64, 0, 16);//0代表宽度,16表示16进制,空位补零
3、数字转QString,并保留小数点位数
//整数转QStringint num1=123;QString str1 = QString::number(num1);qDebug()<<"str1:"<<
4、数字转QString,使用asprintf
ui->comboBox_pulse->addItem(QString::asprintf("%d", PULSE_LOW));ui->lineEdit_x->setText(QString::asprintf("%.3f", m_stuMotionPos.X));
5、QString中的arg还可以对浮点类型的数字按照一定的精度来转换
QString QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const
Format Meaninge format as [-]9.9e[+|-]999E format as [-]9.9E[+|-]999f format as [-]9.9g use e or f format, whichever is the most conciseG use E or f format, whichever is the most concise
QString ss = QString("delta %1").arg(123.45678, 0, 'g', 6);
结果是ss="delta 123.456"。浮点类型格式化为只显示六位有效数字,并且是采用四舍五入的方式。
6、QString/string/wstring的转换
QString::fromStdString()
QString::fromStdWString()
str.toStdString()
QObject::tr("位置超出范围").toStdWString()
转载地址:https://libaineu2004.blog.csdn.net/article/details/106931836 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!