我基本上有多个事件信号,我想将它们连接到同一个插槽。我想知道的是如何将基于字符串的参数传递到同一插槽,以便该插槽知道该信号来自哪个信号。一种替代方法是制作与信号一样多的槽,然后以 1:1 的方式连接它们,但考虑到所有处理的代码非常相似,这种方法很有效。我尝试这样做,但出现了一些错误:
connect(selecter1,SIGNAL(selected(QString)),this,SLOT(backgroundTypeChoiceMade(QString)));
connect(button1,SIGNAL(clicked()),this,SLOT(backgroundTypeChoiceMade("button1")));
connect(button2,SIGNAL(clicked()),this,SLOT(backgroundTypeChoiceMade("button2")));
该错误与我在最后两个命令中传递的参数有关..并且backgroundTypeChoiceMade
声明如下:
void backgroundTypeChoiceMade(QString);
有人可以告诉我上面的代码有什么错误吗?
您可以使用Q信号映射器 http://doc.qt.nokia.com/4.6/qsignalmapper.html。虽然 QSignalMapper 是您问题的答案,但我认为乔恩·汉森的答案是您应该采取的方式。这样你就可以获得更简洁的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)