【发布时间】:2015-05-06 06:01:15
【问题描述】:
我的设置: 我有一个只发出信号的类,称为 Conn 类。
我所有的 QObject 类(A、B 和 C)都是孤立存在的,我根本不希望它们相互了解。但是,如果 A 类想要在自身之外发送一些信息,它必须向 Conn 对象发送一个信号。
B 类和 C 类都可以访问 Conn 对象,并且可以自行决定是否要收听 Conn 的信号之一。
我的问题: 假设 A 类希望在更新 foo 时在名为 sig_updateFoo(int) 的 Conn 对象中发出信号。 现在,假设 A 类还想将 sig_updateFoo(int) 信号连接到其名为 slot_FooUpdated(int) 的槽,因为它还想监听其他人何时发出Conn 对象的信号。
当 A 类的 Conn 对象发出一个也连接到其插槽之一的信号时,会发生逻辑错误。
我需要知道原始发射器是否是 A 类(在这种情况下我将忽略调用),或者它是否是不同的类,这没关系。
我尝试过的想法: 如果我在 A 类的槽中使用 QObject::sender(),我只会得到 Conn 对象的引用,而不是 A 类。
有什么想法吗?
【问题讨论】:
标签: qt signals-slots sender