北京市保障房建设官方网站,美橙互联网站建设进不去,网站 如何做 中英文切换,公司网站在哪备案本系列面向 Python 小白#xff0c;从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。 什么叫从零开始#xff1f;从软件安装、环境配置开始。不跳过一个细节#xff0c;不漏掉一行代码#xff0c;不省略一个例图。 PyQt5 提供了丰富的输入输出控件。本文介绍通过 …本系列面向 Python 小白从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。 什么叫从零开始从软件安装、环境配置开始。不跳过一个细节不漏掉一行代码不省略一个例图。 PyQt5 提供了丰富的输入输出控件。本文介绍通过 QtDesigner 工具栏创建常用的基本控件包括各种按钮控件、文本输入控件和调节输入控件。 欢迎关注『Python 小白从零开始 PyQt5 项目实战 Youcans』系列持续更新中 Python 小白从零开始 PyQt5 项目实战1安装与环境配置 Python 小白从零开始 PyQt5 项目实战2菜单和工具栏 Python 小白从零开始 PyQt5 项目实战3信号与槽的连接 Python 小白从零开始 PyQt5 项目实战4基本控件 1. PyQt5 控件简介
1.1 什么是控件
控件也称控件对象是 Qt用户界面上最基本的组件类型也是构成用户界面的基本结构。用户界面上显示的所有内容都是控件例如按钮、标签、文本框又如菜单栏、工具栏、状态栏甚至整个窗口本身也是控件。
QWidget 类是 PyQt5 的基类也是所有控件的父类。所有的 Qt 控件都是 QWidget 类的子类因此都继承了 QWidget 类的特性可以接收用户的输入事件如鼠标和键盘输入并可以在用户界面上显示控件内容还可以存放其它控件。 1.2 编辑控件的属性
控件具有属性。不同类型的控件具有部分相同的属性也具有一些不同的专有属性。
控件的相同属性包括名字形状位置大小设置格式。控件的专用属性包括展示内容接受输入用户交互日期框架等等。
所有的 Qt 控件都是 QWidget 类的子类继承了 QWidget 类的属性。因此我们学习控件可以按类进行学习先学习其继承的父类的通用属性再学习控件所特有的专有属性。对于控件的学习就是一个类的继承关系的结构图。
我们以图形界面 uiDemo5.ui 为例介绍控件的通用属性并对控件的属性进行编辑修改。
如前所述QtDesigner 右侧上方的 “对象查看器” 显示了界面中的控件名称和结构下方的 “属性编辑器” 显示了选中的控件对象的各种属性。在图形界面中选择某个控件或者在 “对象查看器” 中选择某个控件在属性编辑器 就会显示该控件对象的属性。 不论是窗口对象 MainWindow、菜单栏 menubar、工具栏 toolBar还是按钮 pushButton、编辑行 lineEdit都有一些相同的属性例如
objectName控件名非常重要。准确的说是控件的 IDPython 程序中访问控件、控件交互都是使用 objectName。所有控件都必须具有唯一的 objectName不能重名。不能使用中文字符。geometry控件的大小和位置。 控件的宽度和高度可以修改对于 MainWindow 来说控件的宽度/高度就是图形界面程序窗口的宽度/高度。控件位置 (X, Y) 是控件在窗口控件的坐标值MainWindow 的控件位置不能修改其它控件的位置 (X, Y) 可以根据需要修改。minimumSize、maximumSize 是主窗口大小拉伸后控件对象的最小尺寸、最大尺寸。 font控件显示的字体选择包括字体、字号、风格、效果等选项。 1.3 PyQt5 的控件类型
要了解 QtWidgets 类的子类可以使用 “subclasses()” 将所有的子类打印出来共有约 30个子类。 import PyQt5print(QtWidgets.QWidget.__subclasses__())这些控件类型总体上可以分类如下 输入控件 按钮QPushButton按键按钮QToolButton工具按钮QRadioButton单选框QCheckButton多选框QCommandLinkButton连接命令的按钮键盘输入控件QlineEdit单行输入QTextEdit多行输入QPlainTextEdit普通多行输入QkeySequenceEdit快捷键输入调节输入控件QAbstractSpinBox步长调节输入QDateEdit日期输入QTimeEdit时间输入QDateTimeEdit日期和时间输入数字调节框控件QSpinBox整型数字调节框QDoubleSpinBox浮点数字调节框滑动输入控件QDial旋转拖滑输入QSlider直线拖动输入QScrollBar滚动条QRubberBand橡皮筋拖拽下拉输入控件QComboBox组合框下拉选项QSlider直线拖动输入QScrollBar滚动条QRubberBand橡皮筋拖拽对话框输入控件QDialog对话框QColorDialog颜色对话框QFileDialog文件对话框QFontDialog字体对话框QInputDialog输入对话框日历控件QCalendarWidget日期选择部件 显示控件 内容显示控件QLabel显示框QLCDNumber液晶显示器QProgressBar进度条对话框显示控件QMessageBox信息提示框QErrorMessage错误提示框QProgressDialog进度提示框 高级控件 容器控件QToolBoxQDialogButtonBoxQGroupBoxQMdiSubWindow结构控件QMainWindowQTabwidgetQStackedWidgetQSplitterQDockWidget滚动控件QTextBrowserQScrollAreaQAbstractItemViewQMdiareaQGraphicsView辅助控件QFocusFrameQSizeGripQDesktopWidget其它控件
在 QtDesigner 左侧的 “WidgetBox” 工具栏中将常用的控件按类别进行分组。用鼠标将工具栏中的控件图标拖拽到 QtDesigner 中间的图形界面编辑窗口就在图像界面创建了一个所选择的控件。 2. 按钮控件
2.1 按钮控件简介
按钮是最常用的控件类型。
在 QtDesigner 左侧的 “WidgetBox” 工具栏中的Buttons 组设有多种不同类型的按钮控件PushButton按键按钮QToolButton工具按钮QRadioButton单选框QCheckButton多选框QCommandLinkButton连接命令的按钮。QDialogButtonBox标准按钮盒提供一系列标准按钮相当于按钮控件的组合。
按钮控件的常用属性
text显示文本icon设置图标iconSize图标大小shortcut设置快捷键checkable设置是否自动切换按钮checked设置默认选中状态autoRepeat设置是否会在用户按下时自动重复autoExclusive设置是否启用自动排他性设置多选框
按钮控件的信号触发条件
clicked()当按钮被第一次按下然后释放时发出信号clicked(bool)当按钮被第一次按下然后释放时发出信号并将当前状态传递给外界pressed()当鼠标光标在按钮内时按下鼠标左键发出信号released()当释放鼠标左键时发出信号toggled(bool)按钮的状态发生变化时发出信号并将当前状态传递给外界
按钮控件常用的的模式/状态
可用或不可用禁用时按钮变灰标准按钮开关按钮或菜单按钮打开或关闭仅用于开关按钮默认状态或正常状态是否自动重复是否处于按下状态
用鼠标将工具栏中的按钮控件拖拽到 QtDesigner 中间的图形界面编辑窗口就在图像界面创建了一个按钮控件。如下图所示我们在图形界面 uiDemo5.ui 的左侧创建了几种不同的按钮控件。 2.2 按键按钮QPushButton
QPushButton按键按钮是最常用的按钮按下或者单击按钮可以执行某个操作或回答问题例如确定应用取消关闭是否和帮助。
按钮控件通常显示一个文本标签text可以为按钮选择一个图标icon还可以选择设置快捷键shortcut。
按键按钮的上述属性都可以在 “属性编辑器” 中相应的属性行中进行编辑修改。
当按键按钮被鼠标或快捷键激活时按钮会发出 clicked() 信号可以通过连接槽函数来触发特定的操作。 2.3 其它按钮
QToolButton工具按钮常用于工具栏 通常在创建 QAction 实例时创建。工具按钮通常显示一个图标可以快速访问特定的命令或选项。
QRadioButton单选框是一个带有文本标签的单选框可以打开选中或关闭未选中。单选框被选中或者清除时都会发出 “toggled()” 信号可以通过连接槽函数来触发特定的操作。
QCheckButton多选框是一个带有文本标签的复选框除了可以打开选中或关闭未选中还提供了半选状态可选项。复选框被选中或者清除时都会发射 “stateChanged()” 信号可以通过连接槽函数来触发特定的操作。
单选框定义了“多选一”的选择而复选框提供的是“多选多”的选择。
QCommandLinkButton连接命令的按钮外观像一个扁平化的 QPushButton并且自带了一个向右的图标其用途类似于类似于单选按钮用于一组互斥选项之间进行选择。
QDialogButtonBox标准按钮盒提供一系列标准按钮可以水平或垂直布置常用于对话框和消息框。 Qt 定义的标准按钮包括Yes、No、OK、Cancel、Ignore、Open、Save、Close、Apply、Help 等等用户可以自定义添加。 3. 输入控件
3.1 输入控件简介
在 QtDesigner 左侧的 “WidgetBox” 工具栏中的Input Widget 组设有多种不同类型的输入控件例如 文本输入控件QlineEdit单行输入、QTextEdit多行输入、QPlainTextEdit普通多行输入 数字输入控件QSpinBox整型数据输入、QDoubleSpinBox浮点数据输入 调节输入控件QAbstractSpinBox步长调节输入、QDateEdit日期输入、QTimeEdit时间输入、QDateTimeEdit日期和时间输入。
用鼠标将工具栏中的输入控件拖拽到 QtDesigner 中间的图形界面编辑窗口就在图像界面创建了一个按钮控件。如前图所示我们在图形界面 uiDemo5.ui 的中间和右侧创建了几种不同的输入控件。 3.2 文本输入控件
单行文本输入框QlineEdit
QLineEdit 控件是一个单行文本编辑器 允许用户输入和编辑单行文本并支持撤消、重做、剪切、粘贴及拖放功能。
QLineEdit 控件的属性、信号、函数较多并支持密码输入方式、文本框自动补全在次不作详细介绍有兴趣的读者可以查看相关文档和例程。
多行文本输入框QTextEdit
QTextEdit 控件是一个 “所见即所得” 的多行富文本编辑器 允许用户输入和编辑多行文本并支持HTML4 标签子集可以加载纯文本和富文本的文件适用于编辑和浏览大型的富文本文件。
QTextEdit适用于段落和字符。可以显示图像列表和表格。如果文本太大而无法在文本编辑的视口中查看则会出现滚动条。
TextEdit不仅可以显示文本还可以显示HTML文档
普通多行输入QPlainTextEdit
QPlainTextEdit 控件是一个多行的纯文本编辑器允许用户输入和编辑多行纯文本不支持表格或嵌入帧。针对纯文本的处理进行了优化可以处理更大的文档和更快速的响应。 3.3 调节输入控件
步长调节输入QAbstractSpinBox
QAbstractSpinBox 将所有步长调节器的通用的功能抽象出了一个父类也可以直接实例化使用。QAbstractSpinBox包含了一个QLineEdit和两个QPushbutton数据的更改可以通过点击按钮或使用键盘输入。
日期和时间输入QDateEdit/QTimeEdit/QDateTimeEdit
QDateEdit 控件用于编辑日期QTimeEdit 控件用于编辑时间QDateTimeEdit同时编辑日期时间的控件。可以使用键盘上的上下键头按钮来增加或减少日期、时间。
整型数字调节框QSpinBox
QSpinBox 是一个计数器控件允许用户选择一个整数通过上下按键递增或者递减也可以直接输入整数的数值。默认取值范围为 0-99每次调节的步长为 1。
浮点数字调节框QDoubleSpinBox
QDoubleSpinBox 是浮点数据计数器控件用于处理浮点数值。默认精度为 2位小数。- 4. Python 应用程序调用图形界面
在 QtDesigner 将设计的图形界面保存为 uiDemo5.ui运行 PyUIC 将选中的 .ui 文件转换为 .py 文件在该路径生成 uiDemo5.py 文件。
我们编写一个主程序调用设计的图形界面 uiDemo5.py就可以完成一个图形界面应用程序。
# GUIdemo5.py
# Demo5 of GUI by PyQt5
# Copyright 2021 youcans, XUPT
# Crated2021-10-12import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from uiDemo5 import Ui_MainWindow # 导入 uiDemo5.py 中的 Ui_MainWindow 界面类class MyMainWindow(QMainWindow, Ui_MainWindow): # 继承 QMainWindow 类和 Ui_MainWindow 界面类def __init__(self, parentNone):super(MyMainWindow, self).__init__(parent) # 初始化父类self.setupUi(self) # 继承 Ui_MainWindow 界面类def trigger_actHelp(self): # 动作 actHelp 触发QMessageBox.about(self, About,数字图像处理工具箱 v1.0\nCopyright YouCans, XUPT 2021)returnif __name__ __main__:app QApplication(sys.argv) # 在 QApplication 方法中使用创建应用程序对象myWin MyMainWindow() # 实例化 MyMainWindow 类创建主窗口myWin.show() # 在桌面显示控件 myWinsys.exit(app.exec_()) # 结束进程退出程序由于本文主要介绍常用的基本控件在程序中尚未将控件的信号连接槽函数因此运行程序 uiDemo5.py 时其中的一些按钮控件在点击后并没有触发操作。
在下一篇文章中我们将介绍 PyQt5 中的页面布局。
【本节完】 版权声明
欢迎关注『Python 小白从零开始 PyQt5 项目实战 Youcans』 原创作品
原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/120665014)
Copyright 2021 youcans, XUPT
Crated2021-10-12 欢迎关注『Python 小白从零开始 PyQt5 项目实战 Youcans』系列持续更新中 Python 小白从零开始 PyQt5 项目实战1安装与环境配置 Python 小白从零开始 PyQt5 项目实战2菜单和工具栏 Python 小白从零开始 PyQt5 项目实战3信号与槽的连接 Python 小白从零开始 PyQt5 项目实战4基本控件