PyQt:翻译标准按钮

4 投票
4 回答
6190 浏览
提问于 2025-04-15 15:52

我该如何简单地翻译QMessageBox中的标准按钮(是,否)呢?我不能在这些参数上使用self.tr,所以我想用其他简单的方法来实现。难道我必须使用整个翻译系统吗?

4 个回答

3

你确定你需要自己翻译它们吗?在其他工具包中,标准按钮会自动根据用户使用的语言进行翻译。

5

最快的方法是像这样:

mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")

想了解所有可能的标准按钮,可以查看QMessageBox的文档。

10

这是我做的步骤:

首先,你需要把 qt_LOCALE.qm 这个文件复制到你的应用程序目录里。我的目录是:

cp /usr/share/qt4/translations/qt_fr.qm .

其次,你需要为你的应用程序加载一个翻译器。

application = QApplication(argv)

locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
    application.installTranslator(qtTranslator)

main_window = QMainWindow()
main_window.show()

exit(application.exec_())

撰写回答