Geo*_*che 622
int i = 42;
QString s = QString::number(i);
Run Code Online (Sandbox Code Playgroud)
Kam*_*mek 116
如果你想在某些文本上下文中将它放入字符串中,请忘记+
运算符.简单地说:
// Qt 5 + C++11
auto i = 13;
auto printable = QStringLiteral("My magic number is %1. That's all!").arg(i);
// Qt 5
int i = 13;
QString printable = QStringLiteral("My magic number is %1. That's all!").arg(i);
// Qt 4
int i = 13;
QString printable = QString::fromLatin1("My magic number is %1. That's all!").arg(i);
Run Code Online (Sandbox Code Playgroud)
Gab*_*ard 25
此外,要转换你想要的任何东西,你可以使用QVariant
.对于一个int
给QString
你:
QVariant(3).toString();
Run Code Online (Sandbox Code Playgroud)
A float
到a string
或string
a float
:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
Run Code Online (Sandbox Code Playgroud)
Mat*_*aus 17
另一种选择是使用QTextStream和<<
运算符,就像cout
在C++中使用的一样:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Run Code Online (Sandbox Code Playgroud)
因为运算符<<()
已经过载,所以可以将它用于多种类型,而不仅仅是int
.QString::arg()
例如arg(int a1, int a2)
,重载,但没有arg(int a1, QString a2)
,因此在格式化具有混合类型的较长字符串时,使用QTextStream()
和运算符<<
很方便.
警告:您可能很想使用该sprintf()
工具来模仿C样式printf()
语句,但建议使用QTextStream
或arg()
因为它们支持Unicode string
.
Nar*_*rek 14
我总是用QString::setNum()
.
int i = 10;
double d = 10.75;
QString str;
str.setNum(i);
str.setNum(d);
Run Code Online (Sandbox Code Playgroud)
setNum()
在很多方面都超载了.见QString
课程参考.
lia*_*iaK 12
在它最简单的形式,使用Georg Fritzsche的答案
有点高级,你可以使用这个,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Run Code Online (Sandbox Code Playgroud)
在这里获取文档和示例..