专业的编程技术博客社区

网站首页 > 博客文章 正文

PYQT5学习(02):利用Qt Designer制作第一个窗口程序

baijin 2024-08-16 11:38:25 博客文章 8 ℃ 0 评论

目标

  • 利用Qt Designer设计窗口界面
  • 使用PyUIC把Qt Designer生成的UI文件转换为py文件
  • 使用转换生成的py文件

创建项目

  • 启动启动pycharm并创建项目

这一环节在这里就不过多讲述了,方法与前面所说的《使用pycharm创建我的python项目》一致,如果有不清楚的同学可以参考这篇文章。


  • 安装包:pyqt5

前面安装的pyqt5-tools包含的只是Qt Designer等工具,若要正常使用这些工具生成窗体文件,pyqt5这个包是需要安装到当前项目的。

当然,如果当前项目使用的是全局环境,而且你已经在全局环境中安装好了pyqt5,那么在项目环境中就能够直接找到这个包,不用再重复安装了。

制作窗口UI

  • 启动Qt Designer

Qt Designer如果已经正确连接到pycharm,那就可以直接通过pycharm菜单中的Tools->External Tools->QT设计师来启动。External Tools中的“QT设计师”选项名字是在连接时自行设置的,如果还未了解如何把Qt Designer连接到pycharm中,可以参考我的另一篇文章《PYQT5学习(01):Qt Designer安装和设置

  • 选择创建的窗口类型

启动Qt Designer后,会看到下面的界面。这里是要求我们选择创建窗口的类型,建议选择“Widget”。不同的类型本质都是一样,只是创建窗口的参数和窗口中包含的控件会有所区别。Widget选项创建的窗口是最简模式,只包含了一个空白的容器,我们需要自行往里边添加不同的控件。

选择完成后,单击“Create”按钮创建窗口。

  • 添加控件

选择创建窗口类型后,可以看到下图的界面。这时在Qt Designer界面上看到一个窗口模样的预览窗口,我们可以使用鼠标向里面添加控件,修改其中各部分的属性,添加QSS样式等。

下面尝试把控件箱中的"Label"控件添加到窗口上。在控件箱的“Display Widgets”类别在找到“Label"控件,使用鼠标的拖动操作,把一个Label拖放到窗口上。到此为止,我们成功为窗口添加了一个控件。其它控件的添加方法也与此相似,大家也可以尝试把更多的控件添加到窗口上。

  • 修改控件属性

刚添加的控件会使用系统的默认设置,我们可以对它的属性进行调整,让它以期望的效果进行显示。例如刚才添加的”Label“,可以修改它的字体、大小、颜色等各种属性。具体操作可以参见下图:

每类控件所具有的属性非常多,我们在刚接触时不要想着把所有的属性都记住。而应该先掌握常用的属性作用和修改方法,熟练后会接触到更多的编程需求。当新的需求用到新的属性时,再结合需要去了解。控件的属性最好是参考官方文档,那里更新速度最快,资料最完整。

  • 保存UI文件

具体的保存操作这里就不详细说了,大家自己脑补吧~

把UI文件转换成.py文件

Qt Designer中创建的UI文件是不能被PYQT5这个包所识别,我们需要调用PYQT5-Tools中的PyUIC程序进行转换,把UI文件中的每一项设置翻译成对就的Python指令,调用PYQT5来进行窗口的实际操作。

可以发现,PYQT的窗口编程,实际是需要我们编写代码调用PYQT5包中的方法,进行窗口、控件创建和属性修改等。但手动编码的效率较低,对于重复性事务需要反反复复地输入代码,工作效率低下。为此,PYQT5-Tools这组工具就是专门解决这一问题而诞生。它可以使用可视化的方式让用户设定窗口,然后把用户的设定批量地转换成对就的指令,大大简化了开发的过程。

如上图所示,由于前面我们已经把PyUIC与Pycharm连接好,所以UI文件的转换操作非常简单。只要在需转换的UI文件上单击鼠标右键,从弹出的快捷菜单中找到“Extenal Tools”中的UI转PY选项。(这个选项名字与连接进的设置有关,不一定叫这个名字。)具体设置方法参见另一篇文章《PYQT5学习(01):Qt Designer安装和设置》。这样就可以得到转换好的py文件了。

把窗口添加到程序中

通过Qt Designer设计生成的窗口py文件,实际是封装成一个类。而我们要在程序中展示这个窗口,首先需要把这个类导入,并把它实例化。由于在Qt Designer中没有修改窗口的类名,所以这时类名应该还是默认的:Ui_Form。

在项目中新建一个新的py文件,作为项目的入口主程序。然后把Qt Designer在生成的窗口类Ui_Form导入,参照下面的程序对类进行实例化。运行程序,可看到我们刚才设计的窗口。

import sys
from PyQt5 import QtWidgets
from test_win import Ui_Form


app=QtWidgets.QApplication(sys.argv)
widget=QtWidgets.QWidget()
ui=Ui_Form()
ui.setupUi(widget)
widget.show()
sys.exit(app.exec_())

大家对上面的代码可能不太理解,这个问题暂时不去理会。现在需要先了解UI的设计和转换,并且应用到程序。至于具体的原理,后面再来逐一细说。

本篇文章中的源码打包在以下地址,有需要的请自行下载:

链接:https://pan.baidu.com/s/1bOMz4cTIU9la8rbrtwGJag 提取码:quos

最后,需要说明一下。本人并非技术大牛,也不是什么高手。写这些pyqt5的内容是为了充当学习的笔记,方便日后忘记时查阅。所以内容上一定会有错漏的地方,希望大家帮忙指出。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表