qt 信号多个链接槽_Qt多个信号连接同一个槽的方法

Qt的信号/槽机制给我们编程带来了很大的便利。在多数的情况下,我们只需要一个信号对应一个槽就可以了。但有时候我们也会遇到多个信号对应一个槽的情况。比如说做一个计算器的小程序,界面上有10个按钮分别对应0 - 9这几个数字。按下这几个按钮处理的逻辑是类似的,所以我们完全没有必要为每一个按钮都写一个槽来对应按钮按下的信号。但是假如我们把10个按钮的按下信号都连接到一个槽函数中,那么槽函数又要怎么区分此时按下的是哪个按钮呢?要知道按钮的按下信号是不带参数的。

这时候QSignalMapper就能派生用场了。它可以将对象的信号转发一个槽函数中。那么具体该怎么使用呢?举个例子吧:

首先用QtCreator创建一个基于QWidget的程序,使用UI设计师在界面上拖6个按钮。

接下来我们将使用QSignalMapper将这6个按钮的信号都连接到一个槽函数中。创建QSignalMapper对象,并将它的mapped信号连接到一个槽函数中,这个槽就是我们用来处理6个按钮的地方。

mapped信号有4个不同参数的版本,根据需求自行选择。

2. 将QSignalMapper与按钮关联起来,使用QSignalMapper的setMapping函数。

setMapping有4个重载函数,参数类型与mapped信号的参数一一对应。

3. 将按钮的按下信号与QSignalM

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值