PyQt(Python+Qt)学习随笔:Designer中QDialogButtonBox确认clicked信号是哪个按钮发送的方法

别再纠结方案了!手把手教你用GS2971/GS2972和Xilinx FPGA搭建SDI视频处理系统(含Vivado工程源码) 本文详细介绍了如何使用GS2971/GS2972和Xilinx FPGA搭建SDI视频处理系统,包括硬件选型、系统架构设计、Vivado工程源码实现及调试技巧。通过实战案例,帮助工程师快速掌握SDI视频编解码技术,提升方案设计效率,适用于广电、医疗影像等领域。 阅读详情

一、引言

QDialogButtonBox本身只提供4种信号,分别是accepted、rejected、clicked和helpRequested,在《PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted、rejected和helpRequested信号》介绍了这些按钮中有部分会产生相同的accepted或rejected信号,有部分不会产生accepted或rejected信号,那么怎么确认点击了按钮只能通过clicked信号。

在《PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法》介绍了怎么建立QDialogButtonBox的clicked信号与槽函数的连接的方法,并介绍该信号对应槽函数的参数button就是一个QPushButton类型的按钮,可以通过button.text()判断点击的按钮,实际上除了使用button.text()这种方法来识别点击按钮之外,还有一种QDialogButtonBox提供的方法来判断点击的按钮的方法,这个方法就是通过QDialogButtonBox.button()方法。

二、通过两种方法确认点击button的实现

下面代码为QDialogButtonBox的clicked信号连接的槽函数代码:

 def buttonBoxClicked(self,button):
        standButtonId = [QDialogButtonBox.Ok, QDialogButtonBox.Open, QDialogButtonBox.Save, QDialogButtonBox.Cancel,
                         QDialogButtonBox.Close, QDialogButtonBox.Discard, QDialogButtonBox.Apply,
                         QDialogButtonBox.Reset, QDialogButtonBox.RestoreDefaults, QDialogButtonBox.Help,
                         QDialogButtonBox.SaveAll, QDialogButtonBox.Yes, QDialogButtonBox.YesToAll, QDialogButtonBox.No,
                         QDialogButtonBox.NoToAll, QDialogButtonBox.Abort, QDialogButtonBox.Retry,
                         QDialogButtonBox.Ignore]
        standButtonIdName = ["QDialogButtonBox.Ok","QDialogButtonBox.Open","QDialogButtonBox.Save","QDialogButtonBox.Cancel","QDialogButtonBox.Close","QDialogButtonBox.Discard","QDialogButtonBox.Apply","QDialogButtonBox.Reset","QDialogButtonBox.RestoreDefaults","QDialogButtonBox.Help","QDialogButtonBox.SaveAll","QDialogButtonBox.Yes","QDialogButtonBox.YesToAll","QDialogButtonBox.No","QDialogButtonBox.NoToAll","QDialogButtonBox.Abort","QDialogButtonBox.Retry","QDialogButtonBox.Ignore"]
        standButtonName = ["OK", "Open", "Save", "Cancel", "Close", "Discard", "Apply", "Reset", "Restore Defaults",
                           "Help", "Save All", "&Yes", "Yes to &All", "&No", "N&o to All", "Abort", "Retry", "Ignore"]
		#注意standButtonName中部分含有快捷键的定义,快捷键由“ALT+字母” 组成,字母为上述名字中有&符号后面的字母。
                          
        #通过按钮名字btnName找按钮的buttonID
        btnName = button.text()
        try:index = standButtonName.index(btnName)
        except Exception as e: 
            index = -1
            print(f"Not found buttonName:{btnName}")
        else:
            print(f"通过按钮名字{btnName}找到的buttonID:{standButtonIdName[index]}")

        # 通过按钮对象确认点击按钮的buttonID
        found = False
        index = -1
        for btnid in standButtonId: 
            index += 1
            btn = self.buttonBox.button(btnid) #buttonBox为QDialogButtonBox的实例对象
            if btn == button:
                found = True
                break
        if found:
            print(f"通过按钮对象确认点击按钮为:{standButtonIdName[index]}")

老猿Python,跟老猿学Python!

博文目录

博客地址

PyQt Designer中的QDialogButtonBox的orientation和centerButtons属性 Python 在PyQt中,QDialogButtonBox是一个常用的小部件,用于在对话框中显示多个标准按钮。在上面的示例中,我们首先创建了一个QVBoxLayout来管理对话框中的部件。通过以上示例代码,我们演示了如何使用QDialogButtonBox的orientation属性来设置按钮框的布局方向,并使用centerButtons属性来控制按钮的居中对齐。在上面的示例中,我们创建了一个QDialogButtonBox,并通过setCenterButtons(True)方法启用了按钮的居中对齐。 阅读详情

相关推荐

Pyside6:QDialogButtonBox按钮中文自定义的三种高效方案

本文针对PySide6开发中QDialogButtonBox按钮默认显示英文的问题,提供了三种高效的中文自定义方案:派生基础QDialog、派生基础QDialogButtonBox以及使用装饰器或混入类。详细解析了每种方案的实现原理、操作步骤、优缺点及适用场景,帮助开发者根据项目需求选择最佳方案,实现按钮文本的快速汉化与统一管理。

weixin_29083373的博客 130

Qt: 在SLOT中获取sender(触发SIGNAL的控件)

Qt开发,有个场景是点击三个不同的按钮,触发同一个事件(SLOT),要在SLOT方法中区分三个不同的按钮: 那么怎样在SLOT中获取当前的sender呢?网上查到了答案。用sender()方法: 参考:In qml, How can i get signal sender from slot/function? | Qt Forum...

小鹰信息技术服务部 1571

PyQt5桌面应用开发:浏览器多开软件列表显示设置功能实现详解

在桌面应用开发中,数据模型设计与配置持久化是构建可维护、用户友好软件的核心基础。其原理在于通过定义清晰的数据结构(如使用Python的dataclass和Enum)来管理应用状态,并利用JSON等格式实现配置的本地存储与读取,这确保了用户偏好和程序状态在会话间的延续。这项技术的价值在于显著提升了软件的可用性和专业性,尤其在需要管理多个独立实例或复杂配置的工具中,例如浏览器多开软件、开发环境管理器或批量任务处理工具。以浏览器多开软件为例,其核心应用场景是帮助开发者、测试人员高效管理多个隔离的浏览器实例,进行多

weixin_30653023的博客 384

[QT_027]Qt学习之按钮类控件(QPushButton、QToolButton、QRadioButton、QCheckBox、QCommandLinkButton)

Qt学习之按钮类控件(QPushButton、QToolButton、QRadioButton、QCheckBox、QCommandLinkButton)

kongcheng253的博客 6381

PyQt Designer中确认哪个按钮发送了QDialogButtonBox的clicked信号

在PyQt中使用QDialogButtonBox是一个常见的场景,它提供了一组标准的对话框按钮,例如"OK"、“Cancel”、"Apply"等。我们通过为每个按钮设置独特的标识符,并在槽函数中检查按钮的文本来区分不同的按钮。希望这个例子能够帮助你理解如何在PyQt Designer中确定是哪个按钮发送了QDialogButtonBox的clicked信号,并提供了相应的Python代码来实现这一功能。在槽函数中,我们通过检查按钮的文本来确定是哪个按钮被点击了,并执行相应的操作。在上面的代码中,我们使用。

laugh666的博客 402

PyQt Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法 Python

在PyQt中,QDialogButtonBox是一个常用的对话框按钮组件,它提供了一组预定义的按钮,例如“确定”、“取消”和“应用”。如果你想获取被点击按钮的信息,可以通过连接clicked信号的槽函数来实现。然后,你可以使用按钮的text()方法获取按钮的文本。这是一个简单的例子,演示了如何解决PyQt Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *。在button_clicked()槽函数中,我们获取被点击按钮的文本,并打印出来。

HackDyno的博客 454

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法

一、引言 QDialogButtonBox本身只提供4种信号,分别是accepted、rejected、clicked和helpRequested,在《PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted、rejected和helpRequested信号》介绍了这些按钮中有部分会产生相同的accepted或rejected信号,有部分不会产...

老猿Python 2060

自回归分布滞后模型 (ARDL)及 Stata 具体操作步骤

例如,Bahmani-Oskooee 和 Brooks(1999)研究了汇率波动与贸易收支之间的关系,发现汇率的变动在长期和短期内对贸易收支的影响存在差异,ARDL 模型能够有效地捕捉这种复杂的关系。它结合了自回归(Autoregressive,AR)模型和分布滞后(Distributed Lag,DL)模型的特点,能够同时考察变量之间的短期和长期关系。假设我们收集了一段时间内的居民消费和可支配收入数据,通过对这些数据进行分析和估计,可以得到模型的参数估计值,从而揭示消费与收入之间的短期和长期关系。

a519573917的博客 6093

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted、rejected和helpRequested信号

QDialogButtonBox中可以包含多个pushButton,但QDialogButtonBox本身只提供4种信号,分别是accepted、rejected、clicked和helpRequested。 在缺省情况下,点击这些按钮除了都会产生clicked信号之外,还会可能产生accepted、rejected、helpRequested这三个信号。 下面列出这些按钮点击之后,缺省情况下ac...

老猿Python 2955

AD服务器搭建

一、角色安装1)打开服务器管理器,添加 角色和功能;2) 点 下一步;3)点 下一步;4)点 下一步;5)点击安装;6-1)将此服务器提升为域控制器;6-2)点下一步;6)输入密码 点 下一步;7)自动生成LIXF,点击下一步;8)确认目录,点下一步;8)确认安装条件,点安装; 8)安装成功,点关闭;...

潇峰的博客 6451

Unity热更实战:用YooAsset+HybridCLR实现小游戏资源与代码双更新(含避坑清单)

本文详细介绍了Unity小游戏开发中如何通过YooAsset与HybridCLR实现资源与代码双热更新方案。内容涵盖环境配置、架构设计、微信小游戏专项优化、热更代码工程化实践及真机调试技巧,帮助开发者解决审核周期长、紧急修复等痛点,提升更新效率与稳定性。

weixin_42520025的博客 502

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的ButtonRole详解

一、引言 在Designer中创建的QDialogButtonBox对应的Button,都有指定的ButtonRole,而我们创建自定义的Button加入到QDialogButtonBox中去时,也需要设定该按钮的ButtonRole。 二、ButtonRole之我见 ButtonRole的作用在Qt文档中没有明确说明,老猿分析,ButtonRole主要有如下三个作用: 1、同一种ButtonRo...

老猿Python 4497

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

专业解决各种上架过包问题,专业团队专业处理 3187

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮

在Qt Designer中,可以在界面中使用QDialogButtonBox来配置一组按钮进行操作,Qt中为QDialogButtonBox定义了一组常用的标准按钮,可以在Designer中直接在StandardButtons属性中指定使用,配置界面如图: StandardButtons标准按钮属性与枚举类型QDialogButtonBox.StandardButton类型相对应,具体取值及含义...

老猿Python 3929

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点)

本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。

Snu77的博客 1万+

CANoe中如何仿真报文的CRC和Counter,告诉你三种方法皆可实现

CANoe中如何仿真报文的CRC和Counter

蚂蚁小兵 5281

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox增加自定义按钮的方法

在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见《PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮》。 除了标准按钮,QDialogButtonBox允许增加自定义按钮。如果要在标准按钮之外增加自定义按钮,可以使用addButton方法。 案例 在Qt Designer中定义了一个名为butt...

老猿Python 2617

2020年大连理工大学《计算机控制技术》期末试卷

2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 ...

无名何许人的博客 650

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的按钮改变缺省文字的方法

在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见《PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮》。 这些标准按钮的显示文字Qt已经缺省内置了,如果要改变这些文字,可以通过按钮的setText方法,但在改变前需要通过button方法找到需要修改的按钮。 案例 在Qt Designer中定义了...

老猿Python 2106

Qt实现思维导图功能1『核心树』

利用Qt的QGraphicsView框架实现思维导图功能 百度网盘体验地址: 链接:https://pan.baidu.com/s/15x9F48agCDOQbsyH3VwVXA 提取码:8svh 注:UI风格参考博主:前行中的小猪,博文地址:https://blog.youkuaiyun.com/GoForwardToStep/article/details/124692790?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_u

浮生流年的博客 6163

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的orientation和centerButtons属性

orientation属性 orientation属性表示QDialogButtonBox的方向,缺省情况下,方向为水平方向(值为Qt.Horizontal),表示QDialogButtonBox中的按钮成水平排列,可以调整为垂直方向(值为Qt.Vertical),表示QDialogButtonBox中的按钮成垂直排列。 可以通过方法orientation()、setOrientation(Qt....

老猿Python 1262

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

从零开始 使用PyQt5

 PyQt5 是用来创建Python GUI应用程序的工具包。作为一个跨平台的工具包,PyQt可以在所有主流操作系统上运行(Unix,Windows,Mac)。 本文描述Windows系统下如何安装Python + PyCharm + PyQt5,并通过PyQt5 采用 两种方式设计GUI界面。a.直接使用代码设计界面;b. 先使用QtDesigner进行可视化设计,然后将生成的.ui文件转换成...

漫天撒花的博客 18万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python GUI网络聊天室开发:从Socket到PyQt5实战

网络编程与GUI开发是Python全栈开发的两大核心技术。通过Socket模块实现TCP协议通信,结合多线程处理并发连接,可以构建稳定的客户端-服务器架构。PyQt5凭借其成熟的信号槽机制和丰富的UI组件,成为开发桌面GUI应用的理想选择。本文以网络聊天室项目为例,详细讲解如何使用Python标准库socket处理网络通信,配合PyQt5实现美观的聊天界面,涵盖TCP协议、JSON消息格式、多线程编程等关键技术点。这种技术组合特别适合需要实时交互的应用场景,如即时通讯、远程监控等系统开发。

weixin_34216196的博客 343

Python+PyQt5自制浏览器多开工具:进程隔离与列表管理实战

浏览器多开技术通过为每个实例分配独立的用户数据目录,实现了进程级别的会话隔离,解决了多账号同时登录、并行测试和数据采集等场景下的核心痛点。其技术原理在于利用浏览器的启动参数(如--user-data-dir)创建独立的Profile环境,确保Cookie、缓存和扩展互不干扰。在工程实践中,结合Python的subprocess模块进行进程管理,并借助psutil库实时监控进程状态,可以构建出稳定可控的多开环境。本文聚焦于如何利用PyQt5开发图形界面,并重点解析了1.4.1版本中新增的“列表显示设置”功能,

weixin_34269583的博客 417

PyQt5桌面应用开发实战:从零到一构建完整销售数据管理系统

桌面应用开发是连接用户与系统的重要桥梁,其核心在于将界面、逻辑与数据高效整合。通过模块化架构与清晰的通信机制,开发者可以构建出稳定、可维护的应用程序。在Python生态中,PyQt5凭借其丰富的组件库和信号槽机制,成为实现这一目标的强大工具。本文聚焦于PyQt5实战,深入探讨如何将登录验证、数据管理、图表展示等独立功能模块,通过MVC设计思想与自定义信号进行有机整合,最终形成一个具备完整业务逻辑的销售数据管理系统。文中不仅提供了项目结构规划、数据库连接的单例管理、以及使用QTabWidget进行功能集成的具

java2000.net 381
上一篇: PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮
下一篇: PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox增加自定义按钮的方法
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值