是否有QString
函数需要int并将其输出为QString
?如何将int转换为QString?
回答
int i = 42;
QString s = QString::number(i);
在它最简单的形式,使用乔治Fritzsche也
的回答有点先进的,你可以用这个,
QString QString::arg (int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const
获取文档和示例here ..
不幸的是,诺基亚网站的链接不再有效。 – 2016-05-22 16:35:42
如果你想把它放在一些文本上下文中,忘记+
运算符。 简单地做:
// 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);
既然你提到'+'运算符,注意整数,因为它可能工作得很好,但是在内部,调用'operator +(const QString&s,char c)'实现,并且该字符串不会包含数字的整数, 'QChar :: fromAscii(c)'等效于 – x29a 2015-07-23 08:19:59
由于您提到了+运算符,您可以实际执行此操作,但了解发生了什么:QString p = s + QString :: number(1); 是一个QString完美的作品。所以,基本上QString + QString没问题,QString + int ** bad **。 – 2015-08-12 09:25:46
我总是用QString::setNum()
。
int i = 10;
double d = 10.75;
QString str;
str.setNum(i);
str.setNum(d);
setNum()
以许多方式被重载。参见QString
类参考。
另一种选择是使用QTextStream和<<
运营商在几乎相同的方式,你会用C使用cout
++:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
由于运营商<<()
已经超载,你可以用它为多种类型,不只是int
。 QString::arg()
过载,例如arg(int a1, int a2)
,但没有arg(int a1, QString a2)
,因此使用QTextStream()
和运算符<<
在格式化具有混合类型的较长字符串时比较方便。
注意:你也许会使用sprintf()
设施模仿空调风格printf()
语句,但建议使用QTextStream
或arg()
,因为他们支持Unicode string
秒。
此外,要转换任何你想要的,你可以使用QVariant
。 对于int
到QString
你:
QVariant(3).toString();
一个float
到string
或string
为float:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
'QVariant' rulez! – 2017-05-22 22:46:26
叫我疯了,但我会更多地使用问题作为“如何将数字转换为QString?”,这是轻量级转换的主要答案,以及其他特殊处理的答案。 – mr3 2017-07-18 23:47:01
只是为了保持完整性,您可以使用标准库,并做QString qstr = QString::fromStdString(std::to_string(42));
- 1. 如何将enum转换为QString?
- 2. 如何将unicode QString转换为std :: string?
- 3. 将CFStringRef转换为QString
- 4. 将std :: string转换为QString
- 5. 将bool转换为QString
- 6. 如何将int数组转换为int?
- 7. 使用零填充(前导零)将int转换为QString
- 8. 转换QDate为Qstring?
- 9. 将[Int?]转换为[Int]
- 10. 将int转换为int []
- 11. 将IO Int转换为Int
- 12. 如何LPTSTR转换为QString的
- 13. 将双精度转换为QString
- 14. Qt - 将QString转换为Unicode QByteArray
- 15. 将QString转换为LPCWSTR qt C++
- 16. 将QString或QUrl转换为Unicode
- 17. 将QString Unix纪元时间转换为QString标准时间
- 18. 转换的QString为char *
- 19. 如何将IntPtr/Int转换为Socket?
- 20. 如何将ctypes'c_long转换为Python的int?
- 21. 如何将字符串转换为int?
- 22. 如何将int []转换为模型项
- 23. 如何将int转换为float?
- 24. 如何将int转换为byte []?
- 25. 如何将const Exiv2 :: Value转换为int
- 26. 如何将csv列表转换为int?
- 27. 如何将int []转换为short []?
- 28. Android如何将int转换为String?
- 29. 如何将int []转换为byte []
- 30. 如何将int转换为位掩码?
下面是一个更有趣的问题:有更快的方法吗?我遇到了一个问题,这个版本几乎比以后的整个处理需要更多的时间... – Zeks 2017-04-04 18:22:38
然后,你可能想要在预先分配的缓冲区上工作......但这听起来像是一个单独的问题。 – 2017-04-06 04:45:39