QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long
类型转换为 QString
可以通过以下两种常用方法实现:
方法 1:使用 QString::number()
直接调用 QString
的静态方法 number()
,将数值转换为字符串:
long long value = 1234567890123456789LL;
QString str = QString::number(value);
支持的参数(可选):
- 基数:指定进制(默认为十进制):
QString hexStr = QString::number(value, 16); // 十六进制 QString binStr = QString::number(value, 2); // 二进制
- 填充与对齐(示例):
QString alignedStr = QString::number(value, 10, 10, QLatin1Char('0')); // 右对齐,填充0
方法 2:使用 QString::arg()
通过格式化字符串模板(%1
、%2
等)动态插入数值:
long long value = 1234567890123456789LL;
QString str = QString("%1").arg(value);
高级用法:
- 指定进制(需显式声明类型
%lld
):QString str = QString("%1").arg(value, 0, 10); // 十进制 QString hexStr = QString("%1").arg(value, 0, 16); // 十六进制
- 填充与对齐:
QString alignedStr = QString("%1").arg(value, 20, '0'); // 右对齐,总长度20,填充0
完整示例
#include <QDebug>
int main() {long long value = 1234567890123456789LL;// 方法1:QString::number()QString str1 = QString::number(value);qDebug() << "Method 1 (十进制):" << str1;// 方法2:QString::arg()QString str2 = QString("%1").arg(value);qDebug() << "Method 2 (十进制):" << str2;// 十六进制示例QString hexStr = QString::number(value, 16);qDebug() << "十六进制:" << hexStr;return 0;
}
注意事项
- 负数处理:两种方法均自动处理负数,结果字符串会包含负号(
-
)。 - 性能:
QString::number()
略快于arg()
,但两者差异微小,通常无需优化。 - 版本兼容性:Qt 4.5+ 均支持
long long
类型。
根据需求选择方法即可,推荐使用QString::number()
或简洁的arg()
语法。