我现在和Qt一起工作;我对插槽和信号的实现有点神秘(使用5.4但也可以使用旧语法)。我已经看了一遍这个部分的一个很好的解释,但是它让我不知所措。
我曾经在其他(非Qt)项目中创建一个插槽和信号机制。我有一个消息管理器,以及一个注册它的例程,它想发送一个信号。它会将它发送给消息管理器。同样地,接收器将向其注册它想要被通知信号。它会询问消息管理器。然后,当信号发生时,它会将其路由到听众。发件人不知道有多少(如果有的话)听众,听众也不知道谁可以发送该信号(如果有的话)。
我认为Qt就是这样工作的,我仍然可以通过编写自己的消息管理器来伪造它,但似乎插槽和信号应该照顾它。但是,在所有读取插槽和信号示例中,似乎在建立连接时,您需要知道信号的发送者是谁,并将其连接到您的插槽。但是,如果信号来自多个地方怎么办?你需要把它连接到每个模块吗?这似乎打败了目的,但我发现的每个例子都表明它知道信号的来源。
任何澄清都表示赞赏。