retranslateUi在PyQt中的作用是什么?

4
在运行pyuic5命令并从QT设计师UI文件生成Python文件时,会有一个retranslateUi函数。
def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

这个函数是用来支持多语言吗?如果我对多语言没兴趣,能否安全地删除此函数?

我正在循环中添加GUI小部件,因此在我的代码中实现此功能会很麻烦。


不,你不能安全地删除它,因为即使没有可翻译的字符串,它仍将被setupUi调用。而且,更普遍地说,没有任何好的理由去编辑由pyuic生成的模块。相反,你应该导入它包含的GUI类,并按照这里第二和第三个示例所建议的方式使用它。还要注意,即使你不需要多语言支持,设置所有用户可见的字符串仍然需要retranslateUi - ekhumoro
1个回答

1

这个函数是为了实现多语言支持逻辑而设计的(请参见12)。

你可以毫无问题地将其删除。


我怀疑如果我在某个标签文本上使用ctrl+F查找,发现它只存在于“def retranslateUI”下面,那么我可能无法顺利地将其移除。 - ArduinoBen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接