您的位置:首页 > 编程语言 > Qt开发

Pyqt 国际化多语言支持

2015-06-16 14:56 567 查看
国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性, 给Pyqt 添加国际化支持需要五步

一.编写GUI.py

在要被翻译的text上用tr方法括起来

# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
class Mwindow(QtGui.QDialog):
def __init__(self):
super(Mwindow, self).__init__()
self.resize(100, 60)
self.down1 = QtGui.QPushButton(self.tr(u'download'), self)
self.down1.setGeometry(QtCore.QRect(10, 5, 90, 23))

self.down2 = QtGui.QPushButton(self.tr(u'upload'), self)
self.down2.setGeometry(QtCore.QRect(10, 30, 90, 23))

if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
mainWin = Mwindow()
mainWin.show()
sys.exit(app.exec_())


效果:



二. 创建语言文件

CMD使用命令:

pylupdate4 Ui_Main.py -ts zh_CN.ts


会生成一个zh_CN.ts 的语言文件

其实.ts 文件就是xml文件,你也可以直接打开xml进行修

三. 翻译语言文件

用qt的语言家打开zh_CN.ts

qt语言家linguist.exe目录:python/Lib/site-packages/PyQt4/



四. 转换为qm文件

转换命令:

lrelease  zh_CN.ts


qt lrelease.exe目录: python/Lib/site-packages/PyQt4/

也可以通过qt语言家的菜单--发布



五. 代码中引入qm文件

引用:

from PyQt4.QtCore import QTranslator


trans = QTranslator()
trans.load("zh_CN")  # 没有后缀.qm
app.installTranslator(trans)


完整代码:

# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import QTranslator
class Mwindow(QtGui.QDialog):
def __init__(self):
super(Mwindow, self).__init__()
self.resize(100, 60)
self.down1 = QtGui.QPushButton(self.tr(u'download'), self)
self.down1.setGeometry(QtCore.QRect(10, 5, 90, 23))

self.down2 = QtGui.QPushButton(self.tr(u'upload'), self)
self.down2.setGeometry(QtCore.QRect(10, 30, 90, 23))

if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
trans = QTranslator()
trans.load("zh_CN")  # 没有后缀.qm
app.installTranslator(trans)
mainWin = Mwindow()
mainWin.show()
sys.exit(app.exec_())


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: