确定插槽是否连接到给定信号

Nic*_*aus 6 c++ qt signals

我很想知道是否有某种方法可以确定是否存在与我在类中定义的给定信号的连接.它基本上是一个处理数据的信号,我不关心它连接到什么,但我想要包括一个完整性检查,我不会将数据发送到它永远不会被看到的空白.我已经检查了确定连接到Qt中给定插槽的信号,但这是一个相反的问题.

Tho*_*ire 10

目前QObject::isSignalConnected()正是出于这个用例-避免不必要的工作时,没有人听准备的信号发射.它的API文档甚至有一个很好的例子.

例:

static const QMetaMethod valueChangedSignal = QMetaMethod::fromSignal(&MyObject::valueChanged);
if (isSignalConnected(valueChangedSignal)) {
    QByteArray data;
    data = get_the_value();       // expensive operation
    emit valueChanged(data);
}
Run Code Online (Sandbox Code Playgroud)