Qt使用tr()
函数进行国际化,但很容易忘记用它包含一个字符串,例如写label->setText("Name:");
而不是label->setText(tr("Name:"));
。
我记得在某个地方读过你可以让QString显示错误,除非你以其他方式明确地包含该字符串(如果我没记错的话,在QLatin1String中)。我怎么能这样做?
答案 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