我基本上有多个事件信号,我想连接到同一个插槽。我想知道的是如何将基于字符串的参数传递给同一个槽,以便槽知道这个信号来自哪个槽。一种替代方法是制作与信号一样多的槽,然后以 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")));
错误与我在最后 2 个命令中传递的参数有关。backgroundTypeChoiceMade
声明如下:
void backgroundTypeChoiceMade(QString);
谁能告诉我上面代码中的错误是什么?
最佳答案
您可以使用 QSignalMapper .尽管 QSignalMapper 是您问题的答案,但我认为 jon hanson 的答案是您应该采取的方式。这样你会得到更简洁的代码。
关于c++ - 将参数绑定(bind)到信号/槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166051/