Appending number to QString with arg() , is there better ways?
20,246
Solution 1
You can directly use arg()
like this
int i = 0;
QString msg = QString ("Loading %1").arg(i);
Qt will automatically convert it for you
Solution 2
QString's arg()
function does indeed implement many different types and automatically detect what you provide it. Providing multiple parameters to a single arg()
call like so
// Outputs "one two three"
QString s = QString("%1 %2 %3").arg("one", "two", "three")
is only implemented for QString (and hence const char*
) parameters.
However, you can chain arg calls together and still use the numbering system:
int i = 5;
size_t ui = 6;
int j = 12;
// Outputs "int 5 size_t 6 int 12"
qDebug() << QString("int %1 size_t %2 int%3").arg(i).arg(ui).arg(j);
// Also outputs "int 5 size_t 6 int 12"
qDebug() << QString("int %1 int %3 size_t %2").arg(i).arg(j).arg(ui);
![daisy](https://i.stack.imgur.com/GUMTm.jpg?s=256&g=1)
Author by
daisy
Updated on July 09, 2022Comments
-
daisy almost 2 years
I've been using QString::number () to convert numbers to string for long time , now i'm wondering if there's something better than following:
int i = 0; QString msg = QString ("Loading %1").arg (QString::number (i));
How can i spare QString::number () ? i checked document , seems only "%1" is applicable , no other stuff like "%d" could work