PyQt5 – 使用Qt Designer

yizhihongxing

下面是对于"PyQt5 - 使用QtDesigner"的完整使用攻略:

简介

QtDesigner是一个强大的图形化界面设计工具,通过使用QtDesigner,我们可以设计并生成 Qt 的 UI(User Interface)代码。而PyQt5是为了使用Qt工具包进行Python GUI开发的一种工具包,借助QtDesigner设计UI界面再用PyQt5来控制程序逻辑是一种常见的Python GUI开发方式。

安装PyQt5

在使用 QtDesigner 进行设计 UI 界面时,需要使用 PyQt5 进行 Python 代码编写。如没有安装 PyQt5,请先完成 PyQt5 的安装。

使用 pip 进行安装:

pip install PyQt5

使用QtDesigner

  1. 启动 QtDesigner 工具

    在命令行中输入以下命令:

    designer

    QtDesigner 就会启动。如果想要使用 QtDesigner 快捷方式进行启动,需要在系统中进行相应设置。

  2. 设计 UI 界面

    进入 QtDesigner 后,可以直接用鼠标拉拽进行设计 UI 界面,也可以通过属性编辑器进行中间的设置。

  3. 保存 UI 界面

    成功设计出 UI 界面后,需要将其导出到 python 代码,然后在 Pycharm 中打开它并运行。点击文件->保存可以将当前 UI 界面存储为 .ui 文件。

将 UI 转换成 Python 代码

QtDesigner 设计好的 UI 界面是保存为 .ui 文件的,而 PyQt5 不能直接识别 .ui 文件,所以需要将 .ui 文件转化成 Python 代码。

通过 PyUIC 工具实现:

在命令行中进入包含 .ui 文件的目录,使用以下命令即可将 .ui 文件生成 Python 代码:

pyuic5 -o ui_filename.py ui_filename.ui

其中 pyuic5 是生成 Python 代码的命令,-o 表示输出文件名,ui_filename.py 表示要生成的 Python 代码的文件名,ui_filename.ui 表示要转换的 .ui 文件的文件名。

在 Pycharm 中打开文件生成的 Python 代码,可以看到整个界面布局的 Python 代码。

将UI界面集成到Python项目中

在 Pycharm 中,可以新建一个 Python 文件,将刚刚生成的 Python 代码直接粘贴进去并保存,然后编写处理UI界面中组件逻辑的代码即可。

示例1:

下述代码演示了如何实现一个基本的 UI 界面:

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QDialog
from ui_test1 import Ui_Dialog

class Test1(QDialog, Ui_Dialog):
    def __init__(self):
        QDialog.__init__(self)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.printInfo)

    def printInfo(self):
        text = self.lineEdit.text()
        print(text)

if __name__ == '__main__':
    test1 = Test1()
    test1.show()

先将 PyQt5.QtWidgets 中的 QDialog 包导入,然后导入刚刚转换好的界面类。在 Test1 类中继承 QDialog 和 Ui_Dialog,并在构造函数中使用 self.setupUi(self) 的方法建立实例。在按钮点击事件 printInfo() 中,我们获取了 text 控件的信息并进行信息的输出,从而成功实现了一个基本的 UI 界面。

示例2:

下述代码演示了如何实现一个带表格的 UI 界面:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QTableWidgetItem
from ui_test2 import Ui_MainWindow

class Test2(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(Test2, self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.addTableRow)
        self.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch)

    def addTableRow(self):
        row_count = self.tableWidget.rowCount()
        self.tableWidget.insertRow(row_count)
        for column_count, column_name in enumerate(['id', 'name', 'age', 'gender']):
            item = QTableWidgetItem('data')
            self.tableWidget.setItem(row_count, column_count, item)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    test2 = Test2()
    test2.show()
    sys.exit(app.exec_())

先将 PyQt5.QtWidgets 中的 QMainWindow 包以及 QTableWidgetItem 包导入,然后导入刚刚转换好的界面类。在 Test2 类中继承 QMainWindow 和 Ui_MainWindow,并在构造函数中使用 self.setupUi(self) 的方法建立实例。在按钮点击事件 addTableRow() 中,我们获取当前表格的行数并添加一行新的数据,并在每一列中都添加 "data" 数据,从而成功显示以我们希望的列表形式展现出。

以上,是完整的 "PyQt5 - 使用QtDesigner" 使用攻略。通过使用 PyQt5 和 QtDesigner 的工具,可以让我们的 Python GUI 开发过程更为高效快捷,特别是对于那些没有设计美工经验的开发者而言。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 使用Qt Designer - Python技术站

(0)
上一篇 2023年5月10日
下一篇 2023年5月10日
合作推广
合作推广
分享本页
返回顶部