一、引言

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

二、clicked信号的参数问题

QDialogButtonBox的clicked信号和其他按钮的clicked信号有所不同,其参数类型为QAbstractButton *,这是个典型的C++指针类型,由于Designer中要求信号和槽函数的参数必须类型对应,且槽函数的参数个数必须必须小于等于信号的参数个数,这就会存在如下问题:

如果槽函数中不设置参数,则无法获取点击的是哪个按钮,如果要获取点击按钮,只能通过匹配类型为QAbstractButton *的指针类型参数,但PyQt并没有指针类型参数。

三、clicked信号连接槽函数的解决办法

怎么解决这个问题,老猿想到Python是鸭子类型,对类型不进行强制检查,因此在Designer中将clicked信号与槽函数buttonBoxClicked(QAbstractButton *)进行连接,但在图形派生类中定义的槽函数为 buttonBoxClicked(self,button),结果发现这种方式可以实现QDialogButtonBox的clicked信号和派生类槽函数buttonBoxClicked的连接,并且参数button就是一个QPushButton类型的按钮,可以通过button.text()判断点击的按钮。

老猿Python,跟老猿学Python!

博文目录

博客地址

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

  1. PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性

    accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...

  2. PyQt(Python+Qt)学习随笔:Qt Designer中部件的调色板palette属性和字体font属性设置

    一.调色板 在Qt Designer的部件属性中,有个部件调色板(palette)的属性,进入后,如下图所示: 1.调色板palette Qt中提供的调色板palette用于管理控件的外观显示,对应P ...

  3. PyQt(Python+Qt)学习随笔:Qt Designer中部件的快捷菜单策略(contextMenuPolicy)取值及含义

    在Qt Designer中可以设置部件的快捷菜单策略,快捷菜单通过在部件上点击鼠标右键触发. 快捷菜单策略通过枚举类型Qt.ContextMenuPolicy来定义,对应枚举类型取值及含义如下: 通过 ...

  4. PyQt(Python+Qt)学习随笔:Qt Designer中怎么给toolBar添加按钮

    在Designer中创建了一个MainWindow窗体,当想在其中的toolBar中添加toolButton时发现怎么也放不上去,最终才发现toolBar中的按钮只能通过直接拖拽Action编辑器中的 ...

  5. PyQt(Python+Qt)学习随笔:复选框checkBox的tristate属性

    在Qt Designer中,tristate属性是复选框checkBox相比较于QAbstractButton多出来的唯一属性. tristate属性表示复选框是三种状态还是两种状态,如果trista ...

  6. PyQt(Python+Qt)学习随笔:Designer中属性设置界面的属性字体使用粗黑体的含义

    老猿Python博文目录 老猿Python博客地址 使用了好几个月的Designer,今天才发现属性编辑界面的属性名有的为粗而黑,有的则不是,如图: 稍微测试了一下,发现是对属性值进行过调整,不再是缺 ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中部件的enabled属性

    enabled属性非常简单,最开始老猿没准备介绍该属性的,因为大家都应该知道,但仔细看了看官网文章,觉得还是有些细节可能很少有人注意到,因此还是在此介绍一下. enabled属性用于表示部件是否可用, ...

  8. PyQt(Python+Qt)学习随笔:formLayout的layoutLabelAlignment 属性

    一.引言 Qt Designer的表单布局(formLayout)中,layoutLabelAlignment 用于控制表单布局中标签的水平对齐方式(包括垂直和水平方向两个方向).如图: 此属性实际对 ...

  9. PyQt(Python+Qt)学习随笔:QListView的itemAlignment属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的itemAlignment属性用于控制每个数据项的对齐方式,其类型为枚举类Qt. ...

  10. PyQt(Python+Qt)学习随笔:QTreeView树形视图的indentation属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的indentation属性用于控制视图中每级数据项之间的缩进,对于顶级项 ...

最新文章

  1. 深度剖析不一样的Redis架构设计!
  2. GridView中使用DataFromatString
  3. Python集合list,tuple,dict,set
  4. 计算机视觉与深度学习 | TensorMask: A Foundation for Dense Object Segmentation(何凯明团队新作)近5年目标检测综述
  5. python 定时器_按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟
  6. 美观大气!一款基于 Spring Boot 开发 OA 开源产品
  7. python 面试必问,不会真的要打脸~
  8. 官网opencv练习题 最简单的多物体分离技术
  9. Spring Cloud+Spring Boot高频面试题解析
  10. 3992. 树上有猴-AcWing题库
  11. vs2019键盘钩子_低级键盘钩子回调函数
  12. Topaz Video Enhance AI 1.9 视频增强软件
  13. 个人计算机软件著作权,个人可以申请软件专利权吗?软件著作权申请的注意事项有哪些?...
  14. 诺基亚wp手机安装linux,1小时搞定 普通用户3步轻松更新WP8.1
  15. MCE | 分子伴侣介导的自噬
  16. 阈值分割:基本全局阀值法、上下阀值法、迭代法
  17. ICMP协议及报文类型含义
  18. Flink1.13学习_第 1 章 初识 Flink
  19. 【传智播客郑州校区分享】HTTP/2技术整理
  20. 地产“破壁人” | 一点财经

热门文章

  1. 自己动手写一个分库分表中间件(一)
  2. 产品经理面试必备常见10道题及解析
  3. 自定义函数求两个整数的绝对差值及排序
  4. k8s高可用二进制部署
  5. 微信公众号jssdk音频
  6. 阿里巴巴2019实习生招聘正式启动
  7. VTK笔记-组建vtkPolyData-四面体/五面体/六面体
  8. 解读住房公积金提取买房、租房、贷款新政
  9. python加减乘除_python加减乘除
  10. 企业微信集成自建应用——踩坑记录