按照linguist文档先修改pro,再lupdate,接着生成qm文件,然后修改test.cpp,最后编译。
测试程序中只有一个QPushButton,但显示出来的仍然是英文"Quit",而不是翻译后的"退出"。
不知道是为何。但从test.cpp的代码中似乎找到一点线索:
- //test.cpp
- //Qt 4.4.3
- #include <QApplication>
- #include <QTranslator>
- #include <QWidget>
- #include <QPushButton>
- class MyWidget: public QWidget
- {
- public:
- MyWidget(QWidget *parent = 0);
- };
- MyWidget::MyWidget(QWidget *parent)
- : QWidget(parent)
- {
- QPushButton *quit = new QPushButton(tr("Quit"), this);
- connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
- }
- int main(int argc, char** argv)
- {
- QApplication app(argc, argv);
- QTranslator translator;
- bool loaded = translator.load("test_ch");
- if(loaded) {
- app.installTranslator(&translator);
- MyWidget test;
- test.show();
- }
- return app.exec();
- }
以上代码中定义一个bool类型的loaded变量,用于测试translate.load()的运行情况。如果成功load,那么就能显示主窗口,反之则什么也不显示。
实际操作的情况就是什么也不显示,说明load失败。不过我不清楚究竟是哪里出了问题。
下面的附件压缩包中包含了pro文件,ts文件,qm文件和cpp文件。希望高手能够指点迷津,谢谢!
test.rar
test.rar (2 K) 下载次数:17