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