尽管存在,翻译的文本不会出现在我的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文件位于包含fr_FR.qm文件的translate文件夹旁边的src文件夹下。
print(trad_path)显示文件的路径正确
在内部,MainWindow.py文件我有一个调用set_translatable_textes()函数的showEvent()函数
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')
我尝试了两种翻译:
我可能做错了但是什么?
答案 0 :(得分:0)
多么愚蠢! 在MainWindow出现的时候,翻译还没准备好。
我在MainWindow.show()之前将翻译器的内容放在main中