保护自己不要忘记在tr()中包含字符串文字

时间:2014-07-17 09:07:46

标签: c++ qt internationalization

Qt使用tr()函数进行国际化,但很容易忘记用它包含一个字符串,例如写label->setText("Name:");而不是label->setText(tr("Name:"));

我记得在某个地方读过你可以让QString显示错误,除非你以其他方式明确地包含该字符串(如果我没记错的话,在QLatin1String中)。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

您可以在* .pro文件中将QT_NO_CAST_FROM_ASCII添加到DEFINES。这会阻止char*的自动转换。同样,有一个QT_NO_CAST_TO_ASCII可以阻止QStrings隐式转换为char*

有关详细信息,请参阅http://qt-project.org/doc/qt-5/qstring.html#converting-between-8-bit-strings-and-unicode-strings