我正在使用PyQt5开发一个应用程序,我遇到了一个与框架的i18n函数相关的问题,特别是所有与QTranslator相关的代码。
正如文档所述,我使用一个QTranslator对象加载已编译的.qm文件,如下所示:
tr_object = QTranslator()
tr_object.load(current, "lang")
QCoreApplication.installTranslator(tr_object)问题是,它似乎只是“暂时”安装它,也就是说,如果我在之后立即调用translator (),它就能工作,但是就好像翻译程序立即被卸载一样。
我目前(丑陋的)解决办法是用一个包装器替换QCoreApplication中的translate()函数,这个包装器每次都重新安装翻译器,但这会产生非常大的开销,从而减缓一切。
我也尝试使用我的QApplication实例,而不是静态QCoreApplication,同样的问题。QT_TR_NOOP宏也不能工作。
发布于 2018-03-17 19:44:15
Qt不具有翻译器的所有权,因此您需要在python端保留对它的引用,以阻止它被垃圾收集。
https://stackoverflow.com/questions/49335486
复制相似问题