没有合适的资源?快使用搜索试试~ 我知道了~
首页PyQt5零基础入门:可视化自动化工具开发教程
PyQt5零基础入门:可视化自动化工具开发教程
需积分: 10 0 下载量 112 浏览量
更新于2024-06-30
收藏 4.35MB PDF 举报
"PyQt5从零开发可视化自动化工具是一门针对初学者的教程,由一位在上市公司测试开发部门工作的专业人员分享。课程以个人副业而非机构形式提供,所有的课件源码和资料归测开星辰所有,版权受保护,仅限于本课程的学习者使用,禁止用于商业目的或被他人或机构复制销售。 该教程的第一章主要介绍了PyQt5 GUI程序的基础框架。1.1节通过实例演示了如何创建一个简单的PyQt5应用。学生将学会使用`PyQt5`库,包括`QApplication`类来初始化应用程序,`QWidget`类创建基本窗口,以及添加如`QLabel`这样的控件。作者强调,即使这个程序很简单,仅包含一个带有标签的窗口,但它展示了GUI程序的基本构造,如消息循环和窗口关闭机制。 1.2节则介绍了如何在PyCharm中配置QtDesigner,一个强大的可视化设计工具,用于创建和编辑GUI界面。QtDesigner允许用户通过拖放方式设计界面布局,无需编写大量的代码,这对于提升开发效率和创建复杂界面尤其有用。通过本节,学生将学习如何在PyCharm中集成Qt Designer,并将其与PyQt5编程相结合,实现界面设计的可视化过程。 这门课程旨在帮助读者从零开始掌握PyQt5,逐步构建可视化自动化工具,不仅涵盖基础组件的使用,还涉及如何利用可视化工具优化开发流程。课程内容实用性强,适合希望在GUI自动化领域深入学习的开发者,同时强调了版权和学术道德,鼓励合法学习和传播知识。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86511034/bg10.jpg)
伙伴关系与tab顺序
伙伴关系(Buddy)是指界面上一个Label和一个具有输入焦点的组件相关联。伙伴关系编辑状态,单击一个Label,按
住鼠标左键,然后托向一个组件,就建立了Label和组件的伙伴关系。
伙伴关系是为了在程序运行时,在窗体上用快捷键快速将输入的焦点切换到某个组件上。如姓名输入框,Label标签属性
为“姓名(&N)”,其中符合“&”用来指定快捷键字符,界面上并不显示“&”。“N”是快捷键字母,程序运行时,按下
“Alt+N”,输入焦点就会自动切换到“姓名”标签关联的文本框内。
4.【组件的信号与槽函数关联】
Qt的界面组件都是从Qwidget继承而来的,都支持信号和槽的功能。每个类都有一些内置的信号和槽函数,例如
QPushButton按钮类常用的信号就是clicked(),在按钮被单击时发射此信号。QDialog是对话框类,他有以下三个内建的槽函
数:
accept():功能是关闭对话框,表示肯定的选择,例如“确定”。
reject():功能是关闭对话框,表示否定的选择,例如“取消”。
close():功能是关闭对话框。
例如,将“确定”按钮与对话框的accept()槽函数关联,将“退出”按钮与对话框的close()槽函数关联:
-----作者:星辰 收徒QQ:1934433596 交流群QQ:220598270-----
测开星辰
QQ1934433596
![](https://csdnimg.cn/release/download_crawler_static/86511034/bg11.jpg)
设置完槽函数后,在Signals Slots编辑器里就显示了这两个关联,我们也可以直接在这里进行编辑:
-----作者:星辰 收徒QQ:1934433596 交流群QQ:220598270-----
测开星辰
QQ1934433596
![](https://csdnimg.cn/release/download_crawler_static/86511034/bg13.jpg)
5.应用程序主程序文件
三、知识点
1.【项目文件组成】
项目结构
文件介绍
QApp:由于Qt项目的文件比较多,而我们只是为了使用其中的ui文件,因此单独建了一个文件夹。
appMain.py:创建应用程序和QmyDialog类窗体对象的实例,显示显示窗体并运行的主程序。
myDialog.py:采用前面小节中的单继承和界面独立封装方式定义一个对窗体进行业务逻辑操作的类文件。
qtdemo.py:使用pyuic5对文件qtdemo.ui编译后的py文件。包含一个创建窗体界面的类。
qtdemo.ui:上节课通过Qt Designer设计的窗体界面文件。
uic.bat:批处理文件,用于复制qtdemo.ui文件,并用pyuic5指令编译qtdemo.ui文件而生成qtdemo.py。
2.【批处理文件uic.bat】
uic.bat文件
文件介绍
uic.bat文件是批处理文件,运行批处理文件相当于在Windows的cmd的窗口里顺序的执行文件中的命令。文件中的rem
表示注释行。
3.【窗体界面定义文件】
qtdemo.py文件
该文件是由.ui文件编译后的py文件,是窗体的界面文件。
echo off
rem 将子目录QtApp下的.ui文件复制到当前目录
copy .\QApp\Dialog.ui Dialog.ui
rem 用pyuic5编译.ui文件
pyuic5 -o ui_Dialog.py Dialog.ui
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_QtDemo(object):
def setupUi(self, QtDemo):
-----作者:星辰 收徒QQ:1934433596 交流群QQ:220598270-----
测开星辰
QQ1934433596
![](https://csdnimg.cn/release/download_crawler_static/86511034/bg14.jpg)
QtDemo.setObjectName("QtDemo")
QtDemo.resize(664, 358)
self.verticalLayout = QtWidgets.QVBoxLayout(QtDemo)
self.verticalLayout.setObjectName("verticalLayout")
self.groupBox1 = QtWidgets.QGroupBox(QtDemo)
self.groupBox1.setObjectName("groupBox1")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox1)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.chkBoxBold = QtWidgets.QCheckBox(self.groupBox1)
self.chkBoxBold.setObjectName("chkBoxBold")
self.horizontalLayout_3.addWidget(self.chkBoxBold)
self.chkBoxUnder = QtWidgets.QCheckBox(self.groupBox1)
self.chkBoxUnder.setObjectName("chkBoxUnder")
self.horizontalLayout_3.addWidget(self.chkBoxUnder)
self.chkBoxItalic = QtWidgets.QCheckBox(self.groupBox1)
self.chkBoxItalic.setObjectName("chkBoxItalic")
self.horizontalLayout_3.addWidget(self.chkBoxItalic)
self.verticalLayout.addWidget(self.groupBox1)
self.groupBox2 = QtWidgets.QGroupBox(QtDemo)
self.groupBox2.setObjectName("groupBox2")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox2)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.radioBlack = QtWidgets.QRadioButton(self.groupBox2)
self.radioBlack.setObjectName("radioBlack")
self.horizontalLayout_4.addWidget(self.radioBlack)
self.radioRed = QtWidgets.QRadioButton(self.groupBox2)
self.radioRed.setObjectName("radioRed")
self.horizontalLayout_4.addWidget(self.radioRed)
self.radioBlue = QtWidgets.QRadioButton(self.groupBox2)
self.radioBlue.setObjectName("radioBlue")
self.horizontalLayout_4.addWidget(self.radioBlue)
self.verticalLayout.addWidget(self.groupBox2)
self.textEdit = QtWidgets.QPlainTextEdit(QtDemo)
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.textEdit.setFont(font)
self.textEdit.setOverwriteMode(False)
self.textEdit.setObjectName("textEdit")
self.verticalLayout.addWidget(self.textEdit)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.btnClear = QtWidgets.QPushButton(QtDemo)
self.btnClear.setObjectName("btnClear")
self.horizontalLayout.addWidget(self.btnClear)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
self.btnOk = QtWidgets.QPushButton(QtDemo)
self.btnOk.setObjectName("btnOk")
self.horizontalLayout.addWidget(self.btnOk)
-----作者:星辰 收徒QQ:1934433596 交流群QQ:220598270-----
测开星辰
QQ1934433596
剩余146页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
轻声诉说
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 岩石滑动与断层冲击地压:声发射特征分析
- 新时代煤炭工业八大战略新取向剖析
- 开采强度对华亭矿区冲击地压危险性的影响分析
- 新安煤矿探采对比:影响安全生产的关键因素与技术支撑
- 210MW循环流化床锅炉引风机变频改造优化与节能效果
- 浅埋煤层开采沉陷预测:方法应用与影响分析
- 优化巷道过陷落柱支护方案:数值模拟与现场试验
- 坚硬顶板定向断裂爆破技术:安全高效采煤新方案
- 北航2019算法课作业解析:投资策略与凸子多边形优化
- 断层破碎带垮冒下堆积体边界抗力分布关键影响因素
- 哈拉沟选煤厂优化末煤系统提高效率与处理能力
- 瓦斯涌出影响下采动煤体蠕变失稳研究
- 提升煤矿装载效率的可控箕斗定量装载设备设计
- 水分调控下烟煤瓦斯吸附特性对比研究
- 重介质悬浮液密度控制硬件设计与选型探讨
- 坚硬顶板巷道支护参数设计:现场测试与数值分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)