dw用表格做网站,自己怎么样做游戏网站,做视频背景音乐网站,wordpress 微博登陆不了假设您有QT语言家的基础知识#xff0c;假设网上那些所有的问题您都已经排查过了#xff0c;但依然翻译不生效#xff0c;那么可以看下这篇帖子#xff0c;其实就一个问题#xff0c;变量的生命周期#xff0c;假设QTranslator是一个函数内的变量#xff0c;且没有被声明…假设您有QT语言家的基础知识假设网上那些所有的问题您都已经排查过了但依然翻译不生效那么可以看下这篇帖子其实就一个问题变量的生命周期假设QTranslator是一个函数内的变量且没有被声明为指针那么函数执行结束这个变量就被释放掉了也就是你的应用还没来得及加载这些翻译内容变量已经被清空了但为什么网上有一些例子这样写又成功了呢我猜测是因为他们的项目足够小在变量被释放前需要翻译的那三四个单词已经翻译完成了。下面举例说明。
int main(int argc, char *argv[])
{QApplication app(argc, argv);QTranslator translator;translator.load(trans_zh_CN.qm);app.installTranslator(translator);return app.exec();
}比如上面这段代码QTranslator translator可以能是事件循环的第一次循环结束后已经被释放这中间是有一段时间的可能是几十毫秒几百毫秒这个时间加载量很小的翻译文件时没问题的但是项目稍大就不行了所以此处将QTranslator translator;定义为类的成员变量或者new出来就可以解决这个问题。 上述关于事件循环的知识点以及是否在事件循环第一次执行完以后变量就被释放掉全部是我猜测的正确与否请自行辨别。