zoukankan      html  css  js  c++  java
  • Pyqt 国际化多语言支持

    国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性, 给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)

    完整代码:

     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 sys
    17     app = QtGui.QApplication(sys.argv)
    18     trans = QTranslator()
    19     trans.load("zh_CN")  # 没有后缀.qm
    20     app.installTranslator(trans)
    21     mainWin = Mwindow()
    22     mainWin.show()
    23     sys.exit(app.exec_())

    效果:

  • 相关阅读:
    Python 入门 之 print带颜色输出
    memcache缓存
    PDO
    面向对象(二)
    面向对象(一)
    文件上传
    简单的权限管理
    当前时间与时期联动
    淡入淡出、滑动、及遍历
    留言板相关功能
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4578355.html
Copyright © 2011-2022 走看看