0

同じオブジェクトに多くの信号があり、接続時に const を渡しながらそれらを単一のスロットに接続したい。具体的には、次のようなことをしたいと思います。

connect (obj, SIGNAL(sig()), obj2, SLOT(sl(1))) ;
connect (obj, SIGNAL(sig()), obj2, SLOT(sl(2))) ;
connect (obj, SIGNAL(sig()), obj2, SLOT(sl(3))) ;
connect (obj, SIGNAL(sig()), obj2, SLOT(sl(4))) ;

これを行う方法はありますか?すべての信号が同じオブジェクトから来ているため、QSignalMapper を使用できません。提案/回避策はありますか?

4

2 に答える 2

1

接続ごとに個別の QSignalMapper を使用します。あまり効率的ではありませんが、うまくいくはずです。

于 2012-07-31T14:00:14.553 に答える
0

として試すこともできます

connect (obj, SIGNAL(sig(int)), obj2, SLOT(sl(int))) ;

シグナルとスロットを使用する場合、両方に同じパラメーターを指定する必要があるためです。したがって、任意の値で任意のシグナルを送信できます。シグナルによって発行された値は、自動的にスロットに渡されます。

于 2012-08-01T00:06:47.843 に答える