Qt 使用 tr()
函数进行国际化,但很容易忘记用它括起一个字符串,例如编写 label->setText("Name:");
而不是 label->setText(tr("Name:"));
。
我记得在某处读到过,除非您以某种其他方式(如果我没记错的话,在 QLatin1String 中)明确地包含字符串,否则您可以使 QString 显示错误。我该怎么做?
最佳答案
您可以将QT_NO_CAST_FROM_ASCII
添加到*.pro 文件中的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了解更多详情
关于c++ - 防止自己忘记在 tr() 中包含字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24799284/