【发布时间】:2018-01-08 20:46:01
【问题描述】:
当我尝试使用 PyQt5 创建 Qt 应用程序时,我注意到 QPlainTextEdit 标准上下文菜单以 English 显示,这不是我系统的语言(葡萄牙语),尽管它的语言环境是从其父小部件正确继承的.这是预期的行为吗?如果是这样,我怎样才能添加翻译而不必重写该上下文菜单中已经存在的功能(如剪切/复制/粘贴)?
示例
此程序重现上述行为;它显示一个窗口(因此textEditor.locale().language() 与QLocale.Portuguese 具有相同的值)但上下文菜单以英文显示。
import sys
from PyQt5.QtWidgets import QApplication, QPlainTextEdit, QMainWindow
from PyQt5.QtCore import QLocale
def main():
app = QApplication(sys.argv)
window = QMainWindow()
assert(window.locale().language() == QLocale.Portuguese)
textEditor = QPlainTextEdit(window)
assert(textEditor.locale().language() == QLocale.Portuguese)
window.setCentralWidget(textEditor)
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
【问题讨论】: