2013-06-12 22 views
1

什麼是正確的方式斷開兩個QObject的對方,以便從一個對象發出的更多信號觸發另一個對象的插槽?這兩個物體都不會被銷燬,所以disconnect()will not be called inQObject::~QObject()。我在文檔中看到disconnect()方法的兩個版本,並且都沒有指向兩個對象的指針。正確的方式斷開信號從兩個QObject不被破壞/刪除

斷開連接後,接收對象插槽中不再接收任何信號是非常重要的。緩衝器清除未處理的信號時觸發幾個觸發器即可,但信號必須在很短的時間內停止。

似乎有關於正確的方式做到這一點的困惑。

回答

4

Qt docs

[到]斷開一個特定的接收器:

disconnect(myObject, 0, myReceiver, 0); 

一旦被調用,從myObject所有連接的信號,以myReceiver的插槽將斷開連接。

+2

謝謝!對於未來的讀者,你也可以使用'myobject-> disconnect(myReceiver)''更優雅。 –