【发布时间】:2016-02-23 08:38:47
【问题描述】:
我有一个信号,我想连接到两个插槽,但一次只执行一个插槽。也就是说我有两个跨不同文件的插槽,我希望首先调用插槽 1。稍后当我再次发出相同的信号时,我希望调用插槽 2,而不是调用插槽 1。
在文件 1 中:
connect(...,SIGNAL(mySignal),...,SLOT(mySlot1()));
在文件 2 中:
connect(...,SIGNAL(mySignal),...,SLOT(mySlot2()));
首先我发出信号,然后我希望 mySlot1() 被单独调用。 下次当我发出相同的信号时,我希望 mySlot2() 单独调用。 很明显,两者都采用相同的论点。我不想为它创建一个新信号(就像已经制作的 mySignal 一样)。这可能吗 ?我能做什么?
【问题讨论】:
-
看起来信号/插槽不是您想要的。
-
可以创建一个信号“负载平衡器”对象,该对象具有一个插槽,该插槽接受信号以进行负载平衡,并且每次插槽接收到信号时都会触发一个信号。每次调用负载均衡器的插槽时,它都会自动连接和断开向负载均衡器注册的插槽。我不确定如何实现这一点或是否可能。也许有人可以对此进行扩展。
标签: c++ qt signals-slots slots