0

给定从 qobject 派生的对象和特定信号,是否有可能动态知道连接到该信号的插槽?

4

2 回答 2

0

你应该看看QMetaObject::indexOfSignal,QMetaObject::indexOfSlotQMetaObject::indexOfMethod

QMetaObject* Meta = MyObject->metaObject();
int i = Meta->indexOfSlot("mySlot()");
if (i != -1) {
    // Has connection to slot
}

QObject::receivers您一起返回连接到信号的接收器的数量。

if (MyObject->receivers(SIGNAL(mSignal()))) {
}
于 2013-09-03T14:18:34.987 回答
0

在插槽中,您可以使用 QObject::sender() 方法来获取发出信号的对象。但我强烈建议修改你的设计,这样你就不需要知道发件人。

于 2013-09-03T14:24:30.737 回答