繁体   English   中英

PyQt5-翻译的文本不会出现在GUI中

[英]PyQt5 - Translated texts do not appear in the GUI

尽管已有翻译文本,但我的GUI中没有出现。 这是main.py

from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
import sys, os

from view.MainWindow import MainWindow


if __name__=='__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    MainWindow.show(mainWindow)
    translator = QtCore.QTranslator()
    (filepath,filename)=os.path.split(__file__)
    trad_path=os.path.join(filepath,'translate','fr_FR.qm')
    print (trad_path)
    translator.load(trad_path)
    app.installTranslator(translator)
    sys.exit(app.exec_())

main.py文件位于src文件夹下,其中包含fr_FR.qm文件。

打印(trad_path)显示文件路径正确

在内部,MainWindow.py文件中有一个showEvent()函数,该函数调用set_translatable_textes()函数

    def showEvent(self,ev):
        print('in show event')
        self.set_translatable_textes()

    def set_translatable_textes(self):
        self.choose_session_label.setText(
            QCoreApplication.translate(
                'Main Window','A text that has translation'))
        #self.choose_session_label.setText('Untranslated text')

        self.edit_button.setText(self.tr('Edit'))
        #self.edit_button.setText('Untranslated text')

我尝试两种翻译:

  1. 使用QCoreApplication.translate()
  2. 使用tr()他们都不起作用。 为确保调用该函数,我将每个语句替换为下面的带注释的语句。 他们俩都工作。

我可能做错了什么?

真蠢! MainWindow出现时,翻译器尚未准备就绪。 我将转换程序的东西放在MainWindow.show()之前的main中,然后一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM