Существует ли функция QString
, которая принимает int и выводит его как QString
?
А если вы хотите поместить его в строку в пределах некоторого текстового контекста, забудьте об операторе +
.
Просто сделайте:
// 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);
Кроме того, чтобы преобразовать все, что вы хотите, вы можете использовать QVariant
.
Для типа int
до в QString
вы получаете:
QVariant(3).toString();
В поплавок
в строку
или строка
до поплавок
:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
Еще один вариант заключается в использовании QTextStream и << оператора во многом таким же образом, как вы бы использовать
суда` в C++:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Потому что оператор <<()
был перегружен, вы можете использовать его для нескольких типов, а не просто типа int
. В QString::арг () перегружен, например, арг(инт А1, А2 инт)
, но нет арг(инт А1, А2 в QString), поэтому с помощью QTextStream()
и оператор <<
удобно при форматировании больше строки со смешанными типами.
Внимание: у вас может возникнуть соблазн использовать функции sprintf()объект, чтобы имитировать стиль C
функции printf () заявления, но рекомендуется использовать QTextStream " или " арг (), потому что они поддерживают Юникод `строки.
Я всегда использую в QString::setNum()`.
int i = 10;
double d = 10.75;
QString str;
str.setNum(i);
str.setNum(d);
setNum () перегружен различными способами. Видеть в QString
класса.
В самой простой форме используйте ответ Георга Фрицше.
Для более продвинутых можно использовать следующее,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Получите документацию и пример здесь.