qDebug() << QString("B: %4%1%2%3") .arg(b, c, d, a); works
Philippe On Mon, 5 Jun 2017 00:41:34 +1000 "Tony Rietwyk" <t...@rightsoft.com.au> wrote: > > Sent: Sunday, 4 June 2017 11:26 PM > > > > Hello (No, this is not spam): > > > > For me, the following: > > > > QString a = "XXX"; > > QString b = ""; > > QString c = ""; > > QString d = "1"; > > qDebug() << QString("A: %1%2%3%4") .arg(a) .arg(b) .arg(c) .arg(d); > > qDebug() << QString("B: %4%1%2%3") .arg(b) .arg(c) .arg(d) .arg(a); > > > > prints this: > > > > "A: XXX1" # As expected. > > "B: XXX" # Expected: XXX1. > > > > I think the 'B:' line demonstrates a bug. > > Where is the '1'? > > > > Qt 5.7 > > RedHat Enterprise Linux 6.8 > > gcc: 4.9.3 > > > > Bill > > Hi Bill, > > For the second one, consider that after arg(d) is executed, the input string > to arg(a) is "B: %41". Since 41 is now "the lowest numbered place marker", > "XXX" gets substituted. It is easy to mistakenly think that QString > magically treats multiple .args as somehow being indexed. I think the > documentation for QString.arg should warn about your example, and the case > when substituted strings contain %<number>. > > Regards, Tony > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest