首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTranslator未在PyQt5中持久安装

QTranslator未在PyQt5中持久安装
EN

Stack Overflow用户
提问于 2018-03-17 11:32:50
回答 1查看 88关注 0票数 0

我正在使用PyQt5开发一个应用程序,我遇到了一个与框架的i18n函数相关的问题,特别是所有与QTranslator相关的代码。

正如文档所述,我使用一个QTranslator对象加载已编译的.qm文件,如下所示:

代码语言:javascript
复制
tr_object = QTranslator()
tr_object.load(current, "lang")
QCoreApplication.installTranslator(tr_object)

问题是,它似乎只是“暂时”安装它,也就是说,如果我在之后立即调用translator (),它就能工作,但是就好像翻译程序立即被卸载一样。

我目前(丑陋的)解决办法是用一个包装器替换QCoreApplication中的translate()函数,这个包装器每次都重新安装翻译器,但这会产生非常大的开销,从而减缓一切。

我也尝试使用我的QApplication实例,而不是静态QCoreApplication,同样的问题。QT_TR_NOOP宏也不能工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-17 19:44:15

Qt不具有翻译器的所有权,因此您需要在python端保留对它的引用,以阻止它被垃圾收集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49335486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档