Qt 发出断开的信号是否有问题?

Qt 发出断开的信号是否有问题?,qt,qt4,signals,Qt,Qt4,Signals,我在myapp中定义了一个信号,并在代码中的不同位置发出它,但当我的my_defined_标志被定义时,我需要它,我的问题是: 我是否应该更改每个: emit mySignal(); 到 ? 如果答案是“是”,那么,有没有更好的办法?发射一个没有连接到任何接收器/插槽的信号是完全无害的(除了极少数情况下,您可能会过分担心性能,但发射一个信号真的相当便宜) 在编译时禁用某些信号(如您所建议的,使用预处理指令),可能只有在代码中有一些用于调试的信号时才有保证,而您不希望在最终版本中发出这些信号。发

我在myapp中定义了一个信号,并在代码中的不同位置发出它,但当我的my_defined_标志被定义时,我需要它,我的问题是:
我是否应该更改每个:

emit mySignal();

?


如果答案是“是”,那么,有没有更好的办法?

发射一个没有连接到任何接收器/插槽的信号是完全无害的(除了极少数情况下,您可能会过分担心性能,但发射一个信号真的相当便宜)


在编译时禁用某些信号(如您所建议的,使用预处理指令),可能只有在代码中有一些用于调试的信号时才有保证,而您不希望在最终版本中发出这些信号。

发出未连接到任何接收器/插槽的信号是完全无害的(除了极少数情况下,您可能过度担心性能,但发出信号确实相当便宜)


在编译时禁用某些信号(如您所建议的,使用预处理指令),可能只有在代码中有一些用于调试的信号时才有保证,而您不希望在最终版本中发出这些信号。

不,发出已断开连接的信号并不坏,这完全是意料之中的。Qt本身一直都在这样做

在这种情况下,我只会将连接放在#ifdef中,或者,理想情况下,放在如下内容中:

if (MY_DEFINED_FLAG)
    connect(this, SIGNAL(mySignal()), this, SLOT(mySlot());

不,发出一个断开连接的信号并不坏,这完全是意料之中的。Qt本身一直都在这样做

在这种情况下,我只会将连接放在#ifdef中,或者,理想情况下,放在如下内容中:

if (MY_DEFINED_FLAG)
    connect(this, SIGNAL(mySignal()), this, SLOT(mySlot());

发出信号的类不应该关心是否有人在听。该类的用户可以连接到信号,如果他们需要的话,也可以不连接。也许他们只需要连接到其中的一些信号。没有人连接的信号没有坏处,呼叫本身很便宜。
这就像API的其他部分一样:信号是接口设计的一部分,是类向用户提供的服务,用户可以使用API的这一部分,也可以不使用,这是他们自己的事情。

发出信号的类不应该关心是否有人监听。类的用户如果需要,可以连接到信号,也可以不连接t、 也许他们只需要连接其中的一些。没有人连接的信号没有坏处,电话本身很便宜。
这就像API的其他部分一样:信号是接口设计的一部分,是类向用户提供的服务,用户可能使用API的这一部分,也可能不使用,这是他们自己的事情。

“用于调试目的的信号”真的没有任何意义,我认为。不,这不是调试目的,而是兼容性目的。我认为“调试目的的信号”没有任何意义。不,这不是调试目的,而是兼容性目的。