-1

我对 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 的信号?

谢谢。

4

1 回答 1

2

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

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

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

于 2013-01-09T21:44:01.277 回答