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


相关文章
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
1663 0
|
编译器 API C语言
深入探究Qt与C++标准的兼容之旅
深入探究Qt与C++标准的兼容之旅
1673 3
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
1984 0
关于 QtCreator中写Qt程序遇到printf不输出问题 的解决方法
关于 QtCreator中写Qt程序遇到printf不输出问题 的解决方法
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
4372 4
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明
1320 2
|
Linux 图形学
深入理解Qt定时器:QTimer的魅力与挑战(一)
深入理解Qt定时器:QTimer的魅力与挑战
8906 0
(5)Qt中的日期和时间
本文介绍了Qt中处理日期和时间的类QDate、QTime和QDateTime,包括它们的格式化选项、构造函数、公共成员函数以及如何进行日期和时间的增减、比较,同时提到了QElapsedTimer作为QTime的替代品用于计时。
1330 0
Qt之使用图片填充QLabel
Qt之使用图片填充QLabel
1363 1
Qt-获取计算机信息(MAC、IP、CPU、主机名等等)
Qt-获取计算机信息(MAC、IP、CPU、主机名等等)
2038 0