You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5如何在GUI翻译完成后切换回源语言?

实现Qt GUI翻译后切换回源语言

要在Qt GUI中完成翻译后切换回源语言,核心是移除已安装的翻译器并重新触发界面文本刷新,以下是完善后的代码及说明:

修改后的完整代码

def ChangeLanguage(self, row):
    # 先移除已存在的翻译器,避免多翻译器冲突
    if hasattr(self.ui, 'trans') and self.ui.trans is not None:
        QApplication.instance().removeTranslator(self.ui.trans)
        self.ui.trans = None

    if row > 0:
        self.ui.trans = QTranslator(self)
        self.ui.trans.load("GUI/Language/hu.qm")
        QApplication.instance().installTranslator(self.ui.trans)
        self.ui.retranslateUi(self)
    else:
        # 切换回源语言:无翻译器时,retranslateUi会使用原始的源语言文本
        self.ui.retranslateUi(self)

关键逻辑说明

  • 清理旧翻译器:每次切换语言前先移除已安装的翻译器,避免多个翻译器同时生效导致的文本混乱
  • 切换回源语言:当row=0时,不加载任何翻译文件,直接调用self.ui.retranslateUi(self)——这个Qt Designer自动生成的函数会在没有翻译器的情况下,将所有控件文本恢复为代码中最初定义的源语言内容

注意事项

  • 确保self.ui.retranslateUi(self)是Qt Designer导出代码时自动生成的函数,它负责遍历所有控件并更新文本
  • 若源语言不是英语,无需额外加载翻译文件,Qt默认会使用你在UI设计时填写的原始文本

内容的提问来源于stack exchange,提问作者Robin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 20:15:01