如果我在静态成员中使用,Qt tr() 不起作用
Qt tr() not working if i am using in static member
请让我知道为什么它不起作用,我是Qt的新手。
class Transl
{
public:
static const QString str;
};
const QString Transl::str = QObject::tr("Hello world");
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator translator;
translator.load("trans_la");
app.installTranslator(&translator);
QPushButton hello(Transl::str);
hello.resize(100, 30);
hello.show();
return app.exec();
}
我的 trans_la.ts 文件包含我通过 lupdate 生成的这个。
<TS version="2.0">
<context>
<name>QObject</name>
<message>
<location filename="main.cpp" line="10"/>
<source>Hello world</source>
<translation>Orbis, te saluto!</translation>
</message>
</context>
</TS>
然后我做 lrelease 生成 trans_la.qm。但是当我运行可执行文件而不是显示翻译后的字符串时,它会显示"Hello world"。请告诉我为什么它不起作用。
请参阅Qt Linguist手册,并在页面下方约三分之二处搜索标记为Using QT_TR_NOOP() and QT_TRANSLATE_NOOP()
的部分。
加
检查从 translator.load() 返回的布尔值是个好主意。我无法让它工作,并注意到文件未正确加载。然后我发现了另一个帖子,并手动将我的trans_fr.qm
文件移动到.exe上方的目录中。 我认为这是一个错误,因为hello 翻译演练从未提及这是必要的。
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- tr( "302261" ) 在 Qt 中是什么意思?
- tr()函数不再起作用,从QT 4到QT 5迁移
- 如果我在静态成员中使用,Qt tr() 不起作用
- 我不能在Qt类之外的Qt 5.5中使用tr()