PyQT5 基础编程笔记

PyQT5 基础编程笔记

PyQt5 的基础按钮,文本框等使用记录

一、基础GUI介绍

在创建一个GUI后,使用PyGU转换为python代码后,可在py文件中看见,创建了一个QApplication 对象,和 QMainWindow对象

QApplication 对象及QMainWindow对象

QApplication 对象为整个GUI程序的入口、QMainWindow对象是GUI程序的主窗口。

app = QApplication(sys.argv)
MainWindow = QMainWindow()  # 调用

二、基础按钮

1、QPushButton 类 按钮控件 1

QPushButton是PyQt5中最基础且广泛使用的按钮类型。它用于执行特定的命令或触发特定的事件。这种按钮支持文本、图像以及不同的样式,可以高度定制以适应不同的应用需求。QPushButton可以显示普通文本、HTML标记的文本或图标,还可以配置为显示一个菜单。

QPushButton的一个关键特性是它的信号与槽机制,这允许程序员定义按钮点击时执行的操作。通过连接按钮的点击(clicked)信号到适当的槽函数,可以实现当用户点击按钮时执行特定代码的功能。
创建标准按钮和响应点击事件:
要创建一个基本的QPushButton并响应点击事件,可以遵循以下步骤:

  • 创建按钮实例:实例化一个QPushButton,可以在构造函数中指定按钮的文本。
  • 设置按钮属性:可选地设置按钮的各种属性,如尺寸、图标等。
  • 连接信号与槽:使用clicked信号连接到一个槽函数,以定义点击按钮时的行为。
  • 添加到布局:将按钮添加到布局中,以便在窗口中显示。
    按钮控件,按下则执行动作,Qt Designer中为Push Button
    在这里插入图片描述
    设置:
    .setText(_translate(“MainWindow”, “开启相机”)),设置按钮上显示文本
    .clicked.connect(self.camera_open) 将按钮链接到函数camera_open,按下按钮则执行函数camera_open的动作
self.opencamera.setText(_translate("MainWindow", "开启相机"))
self.opencamera.clicked.connect(self.camera_open)

2、QRadioButton的使用

工作原理和用途:
QRadioButton 在 PyQt5 中用于表示一组互斥的选项,即在多个选项中只能选择一个。这种类型的按钮通常用于设置选择、配置选项或任何需要用户在多个选项中做出单一选择的场景。

当一组QRadioButton放置在同一个父容器中时,它们自动成为一组互斥的按钮。一旦某个按钮被选中,同组内的其他按钮将自动取消选中。这种行为是通过内部的按钮组管理实现的,而无需额外的代码来控制这种互斥行为。

使用单选按钮表示互斥选项
要在用户界面中使用QRadioButton来表示互斥的选项,可以按照以下步骤操作:

  • 创建单选按钮:为每个选项创建一个QRadioButton实例。
  • 添加到布局:将所有单选按钮添加到相同的布局中,这样它们就会自动形成一个互斥组。
  • 连接信号与槽(可选):如果需要响应单选按钮的变化,可以将它们的clicked或toggled信号连接到槽函数

3、QToolButton的高级应用

高级特性介绍:
QToolButton 是 PyQt5 中的一个高级控件,通常用于工具栏中,提供了比普通按钮更丰富的功能。它可以显示一个图标、一个文本或二者结合,还支持各种样式和行为,例如弹出菜单或多种动作模式。QToolButton 特别适用于需要紧凑布局和快速访问特定功能的应用,如绘图程序、文本编辑器或任何工具栏重要的应用程序。

在工具栏中使用 QToolButton:
QToolButton 在工具栏中的使用是其最常见的场景。它可以被配置为显示图标,使得工具栏更加直观和易用。此外,QToolButton 还支持不同的动作模式,例如单击即触发一个操作,或者显示一个关联的下拉菜单以提供更多选项。

添加下拉菜单和动作:
QToolButton 可以配置一个下拉菜单,当用户点击按钮时,菜单会显示出来。菜单中的每一项都可以关联一个特定的动作(QAction),这些动作可以是触发特定功能的命令。

4、QLabel类

5、QMessageBox 类 弹出式对话框

QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈。每个标准按钮都有一个预定义的文本、角色和十六进制数。QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。

方法描述
information(QWidget parent,title,text,buttons,defaultButton)弹出消息对话框,参数解释:parent(指定的父窗口控件),title(对话框标题),text(对话框文本),buttons(多个标准按钮,默认设为OK按钮),defaultButton(默认选中的标准按钮,默认是第一个标准按钮)
question(QWidget parent,title,text,buttons,defaultButton)弹出问答对话框
warning(QWidget parent,title,text,buttons,defaultButton)弹出警告对话框
critical(QWidget parent,title,text,buttons,defaultButton)弹出严重错误对话框
about(QWidget parent,title,text)弹出关于对话框
setTitle()设置标题
setText()设置消息正文
setIcon()设置弹出对话框的图片
1)QMessageBox的标准按钮类型 2
类型描述
QMessage.OK同意操作
QMessage.Cancel取消操作
QMessage.Yes同意操作
QMessage.No取消操作
QMessage.Abort终止操作
QMessage.Retry重试操作
QMessage.Ignore忽略操作

代码显示:

QMessageBox.information(self, "消息对话框", "相机开启", QMessageBox.Yes | QMessageBox.No,
                                        QMessageBox.Yes)

示例:
建立一个QMessageBox对象

self.Openc = QtWidgets.QMessageBox(self.centralwidget)
        self.Openc.setWindowTitle("消息对话框")
        self.Openc.setText("相机开启")
        self.Openc.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
**```
调用QMessageBox对象** 
```python
self.Openc.exec_()  # 弹出相机开启对话框

三、中途暂停正在进行的进程 3

设置暂停按钮,中断进行的循环
将我们要执行的时间变为线程而不是进程
在建立的GUI中添加下面的代码,
其中self.on为需要改变为线程的函数,然后在代码中添加中断标志,例如:判断某个变量是否符合要求,符合则进行动作。

import threading
def a(self):
        t = threading.Thread(target=self.on, name='t')
        t.start()
def a(self):
    t = threading.Thread(target=self.camera_open, name='t')
    t.start()
def camera_open(self):
    self.a = 1
    i = 0
    self.Openc.exec_()  # 弹出相机开启对话框
    while True:
        if self.a == 1:
        执行后续语句
        elsebreak
def close_c(self):
    self.a = 0  改变标识符的数值,使得上个函数中的if语句不成立,跳出循环

self.closecamera.clicked.connect(self.close_c) # 按钮连接函数
self.opencamera.clicked.connect(self.camera_open) # 按钮连接函数

上述实现了使用另外的按钮,中断某个按钮的程序


  1. 原文链接:https://blog.csdn.net/weixin_49520696/article/details/134701542 ↩︎

  2. 原文链接:https://blog.csdn.net/qq_44880255/article/details/106967619 ↩︎

  3. 原文链接:https://blog.csdn.net/qq_43546676/article/details/102905712 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值