在这个代码下面tr(“%1”)和.arg()在这里吗?

时间:2017-01-05 13:39:05

标签: c++ qt

我知道tr()用于语言翻译但"%1"在这里做了什么?  .arg()在下面的代码中的用途是什么?

 tmpItem= new QTableWidgetItem(tr("%1").arg(query.value(0).toString()));

2 个答案:

答案 0 :(得分:1)

由于tr实际上是一个返回QObject::tr的{​​{1}}方法,QString实际上是arg方法。因此,您正在查看QString::arg格式系统,并且每个QString都是一个占位符,可以替换为传递给各自%n的值。 E.g:

arg

答案 1 :(得分:0)

它就像一个花哨的sprintf

您可以使用QStringtr()返回)执行此类格式设置。

int points = 50;
int total = 100;
QString("I got %1 of %2 points.").arg( points ).arg( total );

转向"I got 50 of 100 points"。现在,如果你的运行时值的转换在那里有任何意义,你的代码就会引起争议。