信号如何在Qt中传输?

信号如何在Qt中传输?,qt,signals,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) 否,第二行无效。子-父关系用于定义对象的层次结构-它允许检索对象/对象父对象的

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


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

已经提出了无数问题。。。这里有一个问题是相同的吗?@user1899020这个问题和你的文章标题是相同的,但是你在文章正文中问了两个不同的问题。你应该更清楚你在问什么,不管怎样,如果QT信号/插槽系统不能满足你的需要,你可以简单地使用另一个,在使用QT时使用QT信号/插槽系统不是强制性的。“当发出信号时,它由对象所在线程的事件循环进行处理。”-没错,对于相同的线程用例(绝大多数信号/插槽连接),没有涉及事件循环,这只是简单的同步函数调用。