2

QString を次のようにフォーマットしたい:

QString("%1000%2").arg("ABC", "DEF");

出力が になると思っていましたが"ABC000DEF"、実際には"%1000ABC"です。

どうすればあいまいさを乗り越えることができますか?

4

2 に答える 2

6

「%1」「000」「%2」が表示されず、「%10」「00」「%2」が表示されます (プレースマーカーの範囲は 1 から 99 です)。

回避策は次のとおりです。

QString("%1%2%3").arg("ABC", "000", "DEF");
于 2013-06-20T07:39:41.380 に答える
2

別の回避策は、replace代わりにを使用することですarg。これにより、元の書式文字列は変更されませんが、より多くの入力が必要になります。

QString("%1000%2").replace("%1", "ABC").replace("%2", "DEF");

于 2013-06-20T07:49:34.807 に答える