修改PyQt5控件右键菜单语言为中文的方法

原文来自:https://zhuanlan.zhihu.com/p/50638861

最近使用PyQt5做一个编辑器,需要使用的几个控件右键菜单都是英文,也不支持设置中文,很不协调,而且找到的方法几乎都是Qt的,处理步骤要么不完整要么很麻烦。在这里分享一下PyQt5右键菜单修改语言的步骤,前后效果如下图。

一、先说最快捷的步骤

  1. 下载网盘的翻译文件“widgets_zh_CN.qm”,放到项目目录(比如文件夹qm)。

网盘链接:https://pan.baidu.com/s/1OcZ1-UaZebTLCxrGKolLMg

  1. 把文件添加到程序末尾即可,代码位置见如下注释的3行(注意运行时需取消注释)。

备注1:程序开头需添加"from PyQt5 import QtWidgets, QtCore"
备注2:完整案例可以查看网盘文件,运行其中的“myEdit1.py”即可。

if name == "main":
import sys
app = QtWidgets.QApplication(sys.argv)
# translator = QtCore.QTranslator()
# translator.load("./qm/widgets_zh_CN_all.qm")
# app.installTranslator(translator)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
from PyQt6.QtCore import QTranslator
import sys

app = QApplication(sys.argv) # 创建一个应用

translator = QTranslator()
translator.load("widgets_zh_CN_all.qm")
app.installTranslator(translator)

二、若想自行翻译文件,可参考如下步骤和后面的参考链接

  1. 翻译文件之前需要先通过如下复杂步骤获得“widgets.ts”文件。

①先下载2个程序:“Qt Creator”和Qt源码(qt-everywhere-opensource-src-xxx);

②进入源码qtbase\src\widgets目录,用Qt-Creator打开widgets.pro文件并处理(略)。

  1. 进入pyqt5_tools目录运行“linguist.exe”,从左上角“File”-“Open…”打开ts文件,即可看到如下界面。

目录位置(以非虚拟环境为例)是在:Python\Lib\site-packages\pyqt5_tools
备注:如果不显示左侧Context区域,需单击linguist菜单 - View - Views - Context。

  1. 只需要翻译QLineEdit和QWidgetTextControl两个文件即可(如上图选中位置),点击左侧Context名字,右侧会显示可翻译的选项,单击选项即可在中部输入框填写翻译结果。

备注:比如点击“&Copy”,然后在“Translation to 简体中文”位置填写“复制”。

  1. 翻译完毕即可点击左上角“File”-“Release”发布翻译文件,新的同名文件(.qm结尾)会自动保存到ts文件的相同目录(选项截图如下)。