Echar un vistazo más de cerca a la Documentación de WhuspingingCallwatcher:
La ranura conectada a por el código anterior podría ser algo similar a lo siguiente:
void MyClass::callFinishedSlot(QDBusPendingCallWatcher *call)
{
QDBusPendingReply<QString, QByteArray> reply = *call;
if (reply.isError()) {
showError();
} else {
QString text = reply.argumentAt<0>();
QByteArray data = reply.argumentAt<1>();
showReply(text, data);
}
call->deleteLater();
}
La llamada de QOBJECT :: Deletelater es la clave: Esto significa que QT eliminará el objeto tan pronto como la ejecución vuelva al ciclo de eventos.
Mientras llame deleteLater
en el interior Client::handler(...)
, no necesitas, más precisamente, tú, MUS NO - Llamada delete watcher;
en cualquier sitio. Lo único que tiene que asegurarse es que nadie usa el objeto detrás. call
Después de que la ranura regresa.