q_object eventfilter qt signals-slots

eventfilter - qt object connect



Qt Signals and Slots object disconnect? (2)

Me pregunto si necesito desconectar singals y slots si destruyo el objeto que emite la señal. Aquí hay un ejemplo:

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)));

¿Esto desconectará automáticamente la señal del audioOutput anterior, o dará lugar a fugas de mem o algún otro comportamiento indefinido?

Gracias de antemano.


Las señales se desconectan automáticamente cuando llamas al destructor QObject. Eche un vistazo a la documentación de Qt: QObject Destructor


No tiene que desconectar manualmente las señales y las ranuras, la destrucción de QObject las limpia automáticamente.