网站首页 > 博客文章 正文
一. QAbstractButton简介
QAbstractButton是PySide2中所有按钮的父类, 关系图如下:
基本按钮包含 普通按钮QPushButton, 复选按钮QCheckBox, 单选按钮QRadioButton, 工具按钮QToolButton.
QAbstractButton类中包含的按钮相关信号如下:
clicked: 当鼠标在按钮上点下且释放后触发
pressed: 当鼠标在按钮上点下即触发
released: 当鼠标在按钮上释放则触发
toggled: 可被选中的按钮状态变化则触发, 例如QCheckBox从被勾选变为未勾选,则触发此信号
本文先从QPushButton开始介绍,后续会继续介绍QCheckBox, QRadioButton, QToolButton.
二. QPushButton简介
普通按钮QPushButton就是我们桌面软件上常用的按钮, 应用比较简单,基本就是clicked, pressed, released三个信号.我们只需要根据自己软件设计需求,去设计相应的槽函数然后连接到对应的信号上即可.
三. QPushButton实例
界面设计及信号连接方法就不在这里重复介绍可参考:Python--PySide2入门(1)
为观察按钮各信号触发条件,本例设计两个按钮, 其中一个观察 clicked, 另一个观察pressed和released信号,如下:
设计了三个槽函数, 分别在界面显示 按钮点击, 按下, 释放, 代码如下:
# -*- coding: utf-8 -*-
import sys
from PySide2.QtWidgets import QMainWindow, QApplication
from PySide2.QtCore import Slot
from UI.pushbutton_ui import Ui_PushButton # 导入界面文件生成的对象
class PushButton(QMainWindow):
def __init__(self):
super(PushButton, self).__init__() # 初始化父类
self.ui = Ui_PushButton() # 实例化界面对象
self.ui.setupUi(self) # 加载界面至对象中
# 连接点击测试按钮clicked信号至点击测试槽函数
self.ui.btn_click.clicked.connect(self.slot_btn_clicked)
# 连接按下_释放测试按钮pressed信号至按下测试槽函数
self.ui.btn_press_release.pressed.connect(self.slot_btn_pressed)
# 连接按下_释放测试按钮releaseed信号至释放测试槽函数
self.ui.btn_press_release.released.connect(self.slot_btn_released)
@Slot(str)
def slot_btn_clicked(self):
# 设置显示标签文字
self.ui.lb_disp.setText("按钮点击触发")
@Slot(str)
def slot_btn_pressed(self):
# 设置显示标签文字
self.ui.lb_disp.setText("按钮按下触发")
@Slot(str)
def slot_btn_released(self):
# 设置显示标签文字
self.ui.lb_disp.setText("按钮释放触发")
if __name__ == "__main__":
app = QApplication(sys.argv)
win = PushButton()
win.show()
app.exec_()
四. 例程效果
动图中可看出:
clicked信号,在鼠标完整地进行了按下及释放后,才触发
pressed信号, 在鼠标按下后立即触发
released信号, 在鼠标按下释放后才触发
可能写得不够详细, 有任何不理解的,欢迎从评论区中讨论, 谢谢!
猜你喜欢
- 2025-01-23 Qt添加图标(qt中添加图片)
- 2025-01-23 Mac上调试QT客户端(qt在mac下开发)
- 2025-01-23 Qt使用教程:指定生成设置(二)(qt如何使用c++)
- 2025-01-23 QT实现简单的上位机软件(基于qt的上位机 开发需要用到哪些内容)
- 2025-01-23 Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
- 2025-01-23 Qt使用QSS(qt弹出子窗体后,父窗体按钮不可以使用)
- 2025-01-23 Qt入门_设计find对话框(qt怎么设置对话框大小固定)
- 2025-01-23 从零开始学Qt(39):QFileDialog对话框的使用
- 2025-01-23 Qt 制作登录对话框(qt制作登录界面)
- 2025-01-23 Qt 窗口部件(qt新窗口)
你 发表评论:
欢迎- 380℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 378℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 375℃用AI Agent治理微服务的复杂性问题|QCon
- 366℃初次使用IntelliJ IDEA新建Maven项目
- 361℃Maven技术方案最全手册(mavena)
- 357℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 354℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 354℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)