QString格式化的几种用法:补零/进制转换/保留小数位等

简介: QString格式化的几种用法:补零/进制转换/保留小数位等

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前面自动补0
QString 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;
//0f
QString str = QString("%1").arg(val & 0xFF, 2, 16, QLatin1Char('0'));
//0016
QString 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,并保留小数点位数


//整数转QString

int num1=123;

QString str1 = QString::number(num1);

qDebug()<<"str1:"<<str1<<endl;

//小数转QString,保留两位小数

double num2 = 123.456789;

QString str2=QString::number(num2,'f',2);

qDebug()<<"str2:"<<str2<<endl;


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 Meaning

e      format as [-]9.9e[+|-]999

E      format as [-]9.9E[+|-]999

f      format as [-]9.9

g      use e or f format, whichever is the most concise

G      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()


目录
打赏
0
0
0
0
24
分享
相关文章
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt QSet 详解:从底层原理到高级用法
Qt QSet 详解:从底层原理到高级用法
1075 0
探索Qt折线图之美:一次详尽的多角度解析
探索Qt折线图之美:一次详尽的多角度解析
1447 0
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
1011 0
【Qt 基本类】QDateTime类在C++中的应用与深度解析
【Qt 基本类】QDateTime类在C++中的应用与深度解析
631 0
【Qt UI】QT 窗口/控件置顶方法详解
【Qt UI】QT 窗口/控件置顶方法详解
950 0
QString与char *之间的完美转换,支持含有中文字符的情况
QString与char *之间的完美转换,支持含有中文字符的情况
2367 0
深入理解Qt定时器:QTimer的魅力与挑战(一)
深入理解Qt定时器:QTimer的魅力与挑战
6577 0
Qt QList 详解:从底层原理到高级用法
Qt QList 详解:从底层原理到高级用法
1894 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等