私はシグナルを放出するオブジェクトを破壊する場合、私はsingalsとスロットを切断する必要があるのだろうかと思います。次に例を示します。Qt信号とスロットオブジェクトの切断?
QAudioOutput * audioOutput = new QAudioOutput(format,mainWindow);
connect(audioOutput,SIGNAL(stateChanged(QAudio::State)),this,SLOT(stateChanged(QAudio::State)));
delete audioOutput;
audioOutput = new QAudioOutput(format,mainWindow);
connect(audioOutput,SIGNAL(stateChanged(QAudio::State)),this,SLOT(stateChanged(QAudio::State)));
これは自動的に古いaudioOutputからの信号を切断する、またはそれはMEMリークや他のいくつかの未定義の動作につながるのだろうか?
ありがとうございます。
'QObject'が破壊されたときに接続を安全にクリーンアップすることはできますが、これは親がすでに設定されている' QObject'を削除することをお勧めします'QObject'のための自動機構を既に配置してください。 'QObject'を直接削除するのではなく、' deleteLater() 'を使うのが一般に安全です。 –