我对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的信号?
感谢。
答案 0 :(得分:2)
这是我对这个主题的理解:
(1)否,第二行无效。子父关系用于定义对象的层次结构 - 它允许检索对象/父对象的所有子对象,这允许在层次树的分支上自动执行某些操作 - 比如当对象是时删除对象的所有子对象被删除,等等。但是,信号和插槽属于每个特定对象。当发出信号时,它正由对象所在线程的事件循环处理。
(2)是的,在这种情况下,A具有B的所有信号,槽,方法和成员变量,在继承的情况下,您可以将其视为B是A的一部分。