给定从 qobject 派生的对象和特定信号,是否有可能动态知道连接到该信号的插槽?
问问题
204 次
2 回答
0
你应该看看QMetaObject::indexOfSignal
,QMetaObject::indexOfSlot
和QMetaObject::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 回答