QSignalMapper

QSignalMapper 类用来接受多个信号,将信号汇总后再发射一个新信号。

用处主要是使多个执行类似功能的槽函数化简为一个。

比如说,界面上有十个按钮,按期中一个就输出按钮的名称。每个按钮的该槽函数执行功能基本相同,只是传递信息不同。


QSignalMapper *signalMapper = new QSignalMapper(this);    //先创建一个信号发射器

for(多个对象)

{

connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));    //将按钮信号与信号发射器的槽连接

signalMapper->setMapping(button, texts[i]);        //设定信号转发规则

                                                  //signalMapper->setMapping( 对象,转发信号信息) 不同信息通过转发信息传递

}


connect(signalMapper, SIGNAL(mapped(const QString &)), this, SLOT(doClicked(const QString &)));//与最终的槽函数连接

                                    //mapped()重载了多种形式参数,具体可以看文档


                            


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值