0

qobject から派生したオブジェクトと特定の信号が与えられた場合、その信号に接続されているスロットを動的に知ることは可能ですか?

4

2 に答える 2

0

スロットでは、QObject::sender() メソッドを使用して、シグナルを送信したオブジェクトを取得できます。ただし、送信者を知る必要がないように、デザインを修正することを強くお勧めします。

于 2013-09-03T14:24:30.737 に答える
0

QMetaObject::indexOfSignalQMetaObject::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 に答える