网站首页 > 技术文章 正文
一. 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-04-09 Python 设计模式:初学者指南(python做设计)
- 2025-04-09 三个步骤教你:屏蔽Django admin界面添加按钮,轻松上手
- 2025-04-09 从0开始学Python你准备好了吗?第一章·第四课 安装python解释器!
- 2025-04-09 利用Python实现键盘鼠标监控,女友的一切秘密都在我的掌控之中
- 2025-04-09 解锁弹框:Python 下的 Playwright 弹框处理完全指南
- 2025-04-09 Python GUI编程利器:Tkinker中的单选按钮和多选按钮(3)
- 2025-04-09 Python 变量作用域、global 关键字与闭包作用域深度解析
- 2025-04-09 Python技巧之控制电脑鼠标、键盘,实现自动化操作,让你事半功倍
- 2025-04-09 Python鼠标与键盘自动化指南:从入门到进阶——键盘篇
- 2025-04-09 某校教务管理系统post分析,Python实现自动查询成绩并发送短信
- 264℃Python短文,Python中的嵌套条件语句(六)
- 263℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 256℃Python实现字符串小写转大写并写入文件
- 116℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 89℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)