• 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_())

    效果:

  • 相关阅读:
    文字超出2行显示省略号
    js调试工具console方法详解
    下厨如有神
    画地为牢——广州经济困局
    数字桩和记忆术
    想象力提高记忆能力的重要能力
    三元色
    轻松自我介绍三步走——曼陀罗思考法
    英语单词_巩固方法草稿A
    http、TCP/IP协议与socket之间的区别
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4578355.html
Copyright © 2020-2023  润新知