安装PyQt4
首先安装 PyQt4 开发环境,使用以下命令进行安装:
1
| $ sudo apt-get install python-qt4 python-qt4-dev pyqt4-dev-tools
|
注:笔者的机器安装的是 Ubuntu 12.04。
PyQt4 示例
安装完毕后,按照惯例,编写一个 mainwindow.py 验证下,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
from PyQt4.QtGui import * from PyQt4.QtCore import * import sys
class MainWindow(QMainWindow): def __init__(self, app, parent=None): super(MainWindow, self).__init__(parent)
label = QLabel("Hello PyQt4!") self.setCentralWidget(label) self.setWindowTitle("PyQt4 main Window")
if __name__ == "__main__": app = QApplication(sys.argv) win = MainWindow(app) win.show()
sys.exit(app.exec_())
|
国际化与本地化
处理字符串
将程序中所有需要做国际化与本地化处理的字符串用self.tr()方法处理。
1 2 3
| label = QLabel(self.tr("Hello PyQt4!")) ... self.setWindowTitle(self.tr("PyQt4 main Window"))
|
添加代码
待字符串处理完后,还需在 QApplication 后面添加以下代码:
1 2 3
| translator = QTranslator() translator.load("zh_CN.qm") app.installTranslator(translator)
|
生成 .ts 文件
在终端中,使用 pylupdate4 命令生成 .ts 文件,操作如下:
1
| $ pylupdate4 mainwindow.py -ts zh_CN.ts
|
zh_CN.ts 的内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="zh_CN"> <context> <name>MainWindow</name> <message> <location filename="mainwindow.py" line="13"/> <source>Hello PyQt4!</source> <translation type="unfinished"></translation> </message> <message> <location filename="mainwindow.py" line="15"/> <source>PyQt4 main Window</source> <translation type="unfinished"></translation> </message> </context> </TS>
|
翻译
使用编辑器打开 zh_CN.ts,并修改内容并保存:
1 2 3 4 5 6 7 8 9 10 11
| <name>MainWindow</name> <message> <location filename="mainwindow.py" line="13"/> <source>Hello PyQt4!</source> <translation type="unfinished">你好,PyQt4!</translation> </message> <message> <location filename="mainwindow.py" line="15"/> <source>PyQt4 main Window</source> <translation type="unfinished">PyQt4 主窗体</translation> </message>
|
生成 .qm
使用 lrelease 工具生成 zh_CN.qm 文件,如下:
运行
在终端中运行 mainwindow.py,如下:
看到了什么?界面上出现了中文,说明本地化处理OK!