QString arg ambuguity - 使用arg格式化%1000%2

时间:2013-06-20 07:35:06

标签: c++ qt

我想使用以下内容格式化QString:

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

我希望输出为"ABC000DEF",但实际上是"%1000ABC"

我怎样才能克服困难?

2 个答案:

答案 0 :(得分:6)

它没有看到“%1”“000”“%2”,它看到“%10”“00”“%2”(位置标记从1到99)

解决方法可能是

QString("%1%2%3").arg("ABC", "000", "DEF");

答案 1 :(得分:2)

另一种解决方法是使用replace而不是arg,它不会更改原始格式字符串,但需要更多输入:

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