#include #include #include #include #include class tst_DeferredDelete: public QObject { Q_OBJECT private slots: void deferredDeletion(); }; void tst_DeferredDelete::deferredDeletion() { QObject *obj = new QObject; QPointer ptr = obj; qDebug() << !ptr.isNull(); obj->deleteLater(); qDebug() << !ptr.isNull(); QEventLoop loop; QTimer::singleShot(100, &loop, SLOT(quit())); loop.exec(); qDebug() << !ptr.isNull(); } int main(int argc, char **argv) { QCoreApplication app(argc, argv); tst_DeferredDelete tst; QTimer::singleShot(0, &tst, SLOT(deferredDeletion())); app.exec(); } #include "tst_deferreddelete.moc" $ ./deferredtest true true true