连接信号与槽之后发现了这个有关问题

连接信号与槽之后发现了这个问题
   求教大神了!!

  问题:自己写了多个信号连接一个槽的程序,运行之后发现这个槽函数里的每个if语句同时执行了一遍,这是怎么回事?本人初学,请各位大神帮忙。。。。
连接信号与槽之后发现了这个有关问题
上图是ui界面

下图是写的连接信号与槽函数
连接信号与槽之后发现了这个有关问题

连接信号与槽之后发现了这个有关问题

下图是运行结果
连接信号与槽之后发现了这个有关问题
电机第一个开关之后
连接信号与槽之后发现了这个有关问题

请问这是怎么回事呢?错在哪里呢???
------解决思路----------------------
两个不同的信号连接到了同一个槽上面
所以,不论激活了哪个信号,都会进入到这一个槽函数里然后执行代码

这个逻辑很混乱,最简明的,给每个信号单独映射一个槽函数
------解决思路----------------------
想要一个槽接收多个click信号的话,可以给button设置objectName,然后用如下方法可以在槽函数里获取被按下按钮的指针,对比objectName就可以了
QToolButton* pBtn = dynamic_cast<QToolButton*>(sender());
------解决思路----------------------
你逻辑本身就是错误的,当然所有的isDown都是false结果都运行了。
楼上给出了解决方法:你根据sender()获取objectName来判断是哪个button触发的。
if (sender()->objectName() == "button1") {
}
else if (sender()->objectName() == "button2") {
}
else if (sender()->objectName() == "button3") {
}
.....
------解决思路----------------------
多个信号的连接,可以看一下QSignalMapper