信号如何在Qt中传输?

时间:2013-01-09 21:30:29

标签: qt signals

我对Qt信号有一些令人困惑的问题。

(1)假设A是B的父母。 B发出信号。信号是否转到A?使用一些代码来解释我的问题。

connect(B, SIGNAL(B_signal()), C, SLOT(C_slot())); 
connect(A, SIGNAL(B_signal()), C, SLOT(C_slot()));

第二行是否有效?

(2)如果A来自B,A是否有B的信号?

感谢。

1 个答案:

答案 0 :(得分:2)

这是我对这个主题的理解:

(1)否,第二行无效。子父关系用于定义对象的层次结构 - 它允许检索对象/父对象的所有子对象,这允许在层次树的分支上自动执行某些操作 - 比如当对象是时删除对象的所有子对象被删除,等等。但是,信号和插槽属于每个特定对象。当发出信号时,它正由对象所在线程的事件循环处理。

(2)是的,在这种情况下,A具有B的所有信号,槽,方法和成员变量,在继承的情况下,您可以将其视为B是A的一部分。