PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文转换翻译)

PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文翻译)

前言

大概思路是做一个Language工具栏选项,通过点击选项实现中英文界面切换,具体用到了Qt Linguist.exe,工具栏创建与功能连接,下面将详细介绍。

QT Linguist官方例子https://doc.qt.io/qt-5/examples-linguist.html,共有三个例子。

这篇文章写了太多的官方文档介绍,不需要的可以直接跳到创建完整项目的步骤。

Qt Linguist介绍

QT为Qt C++和Qt Quick提供了专用的快捷开发语言翻译的应用,使得权限管理者,翻译者,开发者可以用Qt tools来完成他们的工作。
权限管理者 承担着管理所有应用权限的责任,比如说,调配开发者跟翻译者的工作,还可以用已发布的应用,lupdate tool来同步源代码跟翻译后的,还可以用lrelease tool来创建一个运行时的翻译文件(我理解为语言包)。
翻译者 可以使用Qt Linguist 工具来在应用中翻译文本。不需要计算机知识,只需要你会启动项目,会用文本编辑器。
开发者必须创建可以使用被翻译过的文本的Qt应用。应当帮助译者识别短语出现的上下文。开发人员可以使用教程了解他们的任务。
虽然官方文档这么说,但是我们应当知道,三个角色一般来说都是程序员扮演的

QT Linguist 包含在pyqt5-tools中一并安装上了(安装在前一篇文章)。一般在Python文件夹 目录下

venv\Lib\site-packages\pyqt5_tools\Qt\bin

可以找到QT Linguist.exe运行程序。

Qt Linguist提供了多种语言支持,但是没有增加很多开发者的工作
Qt通过只在程序创建的时候,使用翻译者翻译短句,实现对程序的最小开支。在大多数情况下,主窗口只创建一遍,一旦窗口初始化的时候完成翻译,根据需要来选择显示还是隐藏,只有在窗口被创建,销毁的时候才需要翻译者。

创建一个完整项目

主窗口文件MainWin.py UI界面文件test_ui.py

1. 使用Qtdesigner创建ui界面

(在我的文章初探在Pycharm中使用QT开发GUI页面,组件安装配置以及一个完整项目中有详细介绍)
在这里插入图片描述
一个label ,两个按钮,实现点击 English按钮 出现英文,点击 简体中文 按钮将其切换为英文,保存为.ui文件,并转换为.py文件

pyuic5 -o test_ui.py test_ui.ui

2.写入主界面逻辑

引入ui格式,建立app窗口

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
from test_ui import *
class MyMainForm(QMainWindow,Ui_Form):
    def __init__(self,parent = None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = MyMainForm()
    myWin.show()
    sys.exit(app.exec_())

PyQt5文档中对各个语句功能的详解,不再赘述

https://www.riverbankcomputing.com/static/Docs/PyQt5/designer.html

3.Qt Linguist创建翻译包

  1. 首先需要生成一个 .ts 文件,test_ui.py 是要翻译的文件名,zn_CN.ts是要生成的文件名。

    E:\Python_project\CSDN>pylupdate5 test_ui.py -ts zn_CN.ts

  2. 在Python文件夹下,找到Qt Linguist.exe程序,打开刚才生成的.ts文件

    Linguist文件夹: venv\Lib\site-packages\pyqt5_tools\Qt\bin

    注意在进入的时候选择源语言与要翻译的目标语言,这里我选择的是英翻汉,主界面如下:
    在这里插入图片描述

  3. 完成所有的字段翻译并保存,作为例子只翻译helloworld这个字段

    在这里插入图片描述
    完成后点击file>release,将翻译好的包保存到当前目录下,得到.qm文件
    在这里插入图片描述
    在这里插入图片描述

  4. 将翻译逻辑写添加到逻辑页面中
    完整代码如下:

    import sys
    from PyQt5.QtWidgets import QMainWindow,QApplication
    from PyQt5.QtCore import QTranslator
    from test_ui import *
    class MyMainForm(QMainWindow,Ui_Form):
        def __init__(self,parent = None):
            super(MyMainForm, self).__init__(parent)
            self.setupUi(self)
            #定义翻译家
            self.trans = QTranslator()
            #将两个按钮链接到槽函数
            self.pushButton.clicked.connect(self._tigger_english)
            self.pushButton_2.clicked.connect(self._trigger_zh_cn)
        def _tigger_english(self):
            #加载语言包
            self.trans.load("zn_CN")
            #获取窗口实例
            app = QApplication.instance()
            #将翻译家安装到实例中
            app.installTranslator(self.trans)
            #翻译界面
            self.retranslateUi(self)
            pass
        def _trigger_zh_cn(self):
            #加载语言包
            self.trans.load("en")
            #获取窗口实例
            app = QApplication.instance()
            #将翻译家安装到实例中
            app.installTranslator(self.trans)
            self.retranslateUi(self)
            pass
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        myWin = MyMainForm()
        myWin.show()
        sys.exit(app.exec_())
    
    

github项目地址

https://github.com/yuuanjiaxiang/CSDN/tree/master/Translation

最后一点自己的叨叨,在学习linguist过程中,看了很多QtLinguist以及pyqt5的官方文档,进步很多,比看博客或者网络搜索得到的更系统更清晰,同时也很煎熬,顶着工地英语压力确实很大,以后还是要多看官方文档,对自己的提升比较快一些吧。不忘初心,砥砺前行,哈哈。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Qt Designer是PyQt5中的一个可视化设计工具,它可以帮助Python开发者快速创建GUI应用程序的用户界面。Qt Designer提供了丰富的控件库,可以快速创建常见的GUI组件,如按钮、标签、文本框等,并且可以自定义控件的属性、布局以及信号槽等。下面是Qt Designer的所有详细功能使用教程。 ## Qt Designer的所有详细功能 ### 1. 控件库 Qt Designer提供了丰富的控件库,包括基本控件、布局控件、对话框、菜单栏等。这些控件可以直接拖拽到界面设计器中,并进行属性设置和布局。 ### 2. 属性设置 在Qt Designer中,可以通过属性编辑器设置控件的属性,如大小、位置、文本、字体、颜色等。同时,还可以设置控件的样式表、信号槽等。属性编辑器界面可以通过点击控件显示出来。 ### 3. 布局管理器 Qt Designer中提供了多种布局管理器,如水平布局、垂直布局、网格布局等。通过布局管理器,可以轻松地调整控件的位置和大小,使得控件在不同分辨率的屏幕上都能适应。同时,还可以设置控件之间的间隔和对齐方式。 ### 4. 信号槽 Qt Designer中提供了信号槽编辑器,可以通过拖拽控件之间的连接线来设置信号和槽。信号是控件发出的事件,如按钮被点击、文本框内容改变等;槽是处理信号的函数,可以在代码中实现。通过信号槽机制,可以实现控件之间的交互。 ### 5. 预览和调试 在Qt Designer中,可以通过预览功能来查看设计的界面效果。同时,还可以通过连接到Python解释器来进行调试,调试过程中可以查看控件的属性和信号槽的连接情况。 ## 使用教程 ### 1. 安装pyqt5-tools 首先需要安装pyqt5-tools,可以通过pip来安装: ``` pip install pyqt5-tools ``` ### 2. 打开Qt Designer 安装完成后,在命令行中输入以下命令打开Qt Designer: ``` designer ``` ### 3. 创建新界面 打开Qt Designer后,可以选择新建一个界面或打开一个已有的界面。新建一个界面可以通过点击“File”->“New”->“Main Window”来创建。 ### 4. 添加控件 在左侧的控件库中选择需要添加的控件,然后将其拖拽到界面设计器中。控件的属性可以在右侧的属性编辑器中进行设置。 ### 5. 设置布局 通过选择相应的布局管理器,可以设置控件的布局。布局管理器可以在左侧的控件库中找到。此外,还可以通过手动调整控件的位置和大小来进行布局设置。 ### 6. 设置信号槽 在信号槽编辑器中,可以通过拖拽控件之间的连接线来设置信号和槽。信号和槽的设置可以在代码中实现。 ### 7. 预览和调试 在Qt Designer中,可以通过预览功能来查看设计的界面效果。同时,还可以通过连接到Python解释器来进行调试,调试过程中可以查看控件的属性和信号槽的连接情况。 ### 8. 保存界面 完成设计后,可以通过“File”->“Save”来保存界面文件。界面文件的后缀名为.ui,可以在代码中使用pyuic5工具将其转换为Python代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值