4

2 つの QObject を互いに切断して、1 つのオブジェクトから送信された信号がもう 1 つのオブジェクトのスロットをトリガーしないようにする適切な方法は何ですか? どちらのオブジェクトも破棄されないためdisconnect() 、 では呼び出されません QObject::~QObject()。ドキュメントには 2 つのバージョンのdisconnect()メソッドが記載されていますが、どちらも 2 つのオブジェクトへのポインターを取りません。

切断後、受信オブジェクト スロットに信号が受信されないようにすることが重要です。バッファが未処理の信号をクリアしている間のいくつかのトリガーは問題ありませんが、信号は非常に短い時間内に停止する必要があります。

これを行う適切な方法については、いくつかの混乱があるようです。

4

1 に答える 1

7

Qtドキュメントから:

[To] 特定の受信機を切断する:

disconnect(myObject, 0, myReceiver, 0);

これが呼び出されると、myObjectのシグナルからmyReceiverのスロットへのすべての接続が切断されます。

于 2013-06-12T20:43:13.590 に答える