网站首页 > 开源技术 正文
目标
- 利用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的内容是为了充当学习的笔记,方便日后忘记时查阅。所以内容上一定会有错漏的地方,希望大家帮忙指出。
猜你喜欢
- 2024-10-26 脚下每一步都是马赛克艺术(脚下走的每一步)
- 2024-10-26 Python GUI开发:PySide2使用入门(python gui程序)
- 2024-10-26 手把手教会 VS2022 设计 Winform 高DPI兼容程序 (net461 net6.0 双出)
- 2024-10-26 如何使用FastReport .NET 在 JetBrains Rider 中创建PDF报告?
- 2024-10-26 实战PyQt5: 002-安装和配置PyQt5开发环境
- 2024-10-26 触得到的时间--kickstarter上受到最多资助的项目
- 2024-10-26 今天再用10分钟,木辛老师带你一起走入界面布局管理的知识海洋吧
- 2024-10-26 51款工业风浴室超高逼格做法,真是太好用了
- 2024-10-26 由浅入深理解C#中的事件(c#事件的五要素)
- 2024-10-26 132.Python——PySide6:安装和VSCode中配置及使用
你 发表评论:
欢迎- 最近发表
-
- Shell脚本编程入门:轻松掌握自动化利器
- 告别代码恐惧症!豆包推出可视化AI编程,拖拽即可创建网页应用
- 星空外挂出程序单设置_启根教育(星空外挂excel通用程序单改三视图)
- PLC编程中的IF语句:从基础到高级的全面指南(附源码例程)
- 过程测量与控制仪表的功能标志及图形符号
- 西门子PLC编程基本指令汇总(西门子plc编程指令教学)
- 仪创Web门禁控制器:RESTful API标志门禁进入"可编程智能硬件"时代
- Python初体验:从入门到实践(python入门操作)
- Linux系统编程之进程基础知识(linux进程常用命令)
- [西门子PLC] 西门子1200 、200smart、 LOGO! 实现S7通讯演示功能
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)