Czy istnieje QString
funkcja, która bierze int i wyprowadza go jako QString
?
c++
qt
type-conversion
Ahmad
źródło
źródło
A jeśli chcesz umieścić go w ciągu w kontekście tekstowym, zapomnij o
+
operatorze. Po prostu wykonaj:źródło
+
operatorze, uważaj na liczby całkowite, ponieważ może on bardzo dobrze działać, ale wewnętrznie,operator+(const QString &s, char c)
implementacja jest wywoływana, a ciąg nie będzie zawierał liczby całkowitej jako liczby, ale jejQChar::fromAscii(c)
odpowiednikCo więcej, możesz przekonwertować cokolwiek chcesz, możesz użyć
QVariant
. Dlaint
DoQString
otrzymasz:A
float
do astring
lubstring
afloat
:źródło
QVariant
rulz!Jeszcze inną opcją jest użycie QTextStream i
<<
operatora w taki sam sposób, jakcout
w C ++:Ponieważ operator
<<()
został przeciążony, możesz go używać do wielu typów, nie tylkoint
.QString::arg()
jest na przykład przeciążony,arg(int a1, int a2)
ale nie ma goarg(int a1, QString a2)
, więc użycieQTextStream()
i operator<<
jest wygodny podczas formatowania dłuższych ciągów z mieszanymi typami.Przestroga: możesz mieć ochotę
sprintf()
naśladowaćprintf()
instrukcje w stylu C , ale zaleca się użycieQTextStream
lubarg()
ponieważ obsługują one Unicodestring
.źródło
Zawsze używam
QString::setNum()
.setNum()
jest przeciążony na wiele sposobów. ZobaczQString
odniesienie do klasy.źródło
W najprostszej formie skorzystaj z odpowiedzi Georga Fritzschego
Dla nieco zaawansowanych możesz użyć tego,
Pobierz dokumentację i przykład tutaj ..
źródło
Dla kompletności możesz użyć standardowej biblioteki i zrobić
QString qstr = QString::fromStdString(std::to_string(42));
źródło
Jeśli potrzebujesz formatowania liczb zgodnego z ustawieniami regionalnymi, użyj zamiast tego QLocale :: toString.
źródło