Jawaban:
Gunakan QString::number()
:
int i = 42;
QString s = QString::number(i);
Dan jika Anda ingin memasukkannya ke dalam string dalam konteks teks tertentu, lupakan +
operator. Cukup lakukan:
// 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, hati-hati di sekitar bilangan bulat, karena mungkin bekerja dengan baik tetapi secara internal, operator+(const QString &s, char c)
implementasinya disebut, dan string tidak akan berisi bilangan bulat sebagai angka tetapi QChar::fromAscii(c)
setara
Selain itu untuk mengonversi apa pun yang Anda inginkan, Anda dapat menggunakannya QVariant
. Untuk int
ke QString
Anda mendapatkan:
QVariant(3).toString();
A float
ke a string
atau string
ke float
:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
QVariant
rulez!
Namun pilihan lain adalah menggunakan QTextStream dan <<
operator dengan cara yang sama seperti yang Anda gunakan cout
di C ++:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Karena operator <<()
kelebihan beban, Anda dapat menggunakannya untuk banyak jenis, bukan hanya int
. QString::arg()
kelebihan beban, misalnya arg(int a1, int a2)
, tetapi tidak ada arg(int a1, QString a2)
, jadi gunakan QTextStream()
dan operator<<
nyaman saat memformat string yang lebih panjang dengan tipe campuran.
Perhatian: Anda mungkin tergoda untuk menggunakan sprintf()
fasilitas ini untuk meniru printf()
pernyataan gaya C , tetapi disarankan untuk menggunakan QTextStream
atau arg()
karena mereka mendukung Unicode string
s.
Dalam bentuknya yang paling sederhana, gunakan jawaban Georg Fritzsche
Untuk sedikit mahir, Anda bisa menggunakan ini,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Dapatkan dokumentasi dan contohnya di sini ..