博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyqt 国际化多语言支持
阅读量:6991 次
发布时间:2019-06-27

本文共 1855 字,大约阅读时间需要 6 分钟。

 

国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性, 给Pyqt 添加国际化支持需要五步

一.编写GUI.py

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

# -*- coding: utf-8 -*-from PyQt4 import QtCore, QtGuiclass 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)

完整代码:

1 # -*- coding: utf-8 -*- 2 from PyQt4 import QtCore, QtGui 3 from PyQt4.QtCore import QTranslator 4 class Mwindow(QtGui.QDialog): 5     def __init__(self): 6         super(Mwindow, self).__init__() 7         self.resize(100, 60) 8         self.down1 = QtGui.QPushButton(self.tr(u'download'), self) 9         self.down1.setGeometry(QtCore.QRect(10, 5, 90, 23))10 11         self.down2 = QtGui.QPushButton(self.tr(u'upload'), self)12         self.down2.setGeometry(QtCore.QRect(10, 30, 90, 23))13 14 15 if __name__ == '__main__':16     import sys17     app = QtGui.QApplication(sys.argv)18     trans = QTranslator()19     trans.load("zh_CN")  # 没有后缀.qm20     app.installTranslator(trans)21     mainWin = Mwindow()22     mainWin.show()23     sys.exit(app.exec_())

效果:

转载地址:http://bubvl.baihongyu.com/

你可能感兴趣的文章
拜访--美团笔试题 (动态规划)
查看>>
iOS speex
查看>>
模块和包
查看>>
js_js流程控制
查看>>
asp.net mvc全局错误处理
查看>>
[摘录]第四章 工作本身就是一种激励
查看>>
【目录】java学习路径
查看>>
11G、12C Data Guard Physical Standby Switchover转换参考手册
查看>>
root.sh脚本支持checkpoints文件实现重复运行
查看>>
Algs4-2.4.20证明:基于下沉的堆构造方法的比较次数、交换次数
查看>>
16进制的简单运算http://acm.nyist.net/JudgeOnline/problem.php?pid=244
查看>>
leetcode3. Longest Substring Without Repeating Characters
查看>>
Jmeter之Bean shell使用
查看>>
C#中泛型的使用笔记
查看>>
【bzoj4009 hnoi2015】接水果
查看>>
@property专题
查看>>
LNMP结合discuz的配置
查看>>
js中ul与li的使用
查看>>
实验二
查看>>
jquery.artDialog.source.js学习
查看>>