[Qt-interest] QObject::deleteLater and private event loop (not using QCoreApplication::exec())

Thiago Macieira thiago at kde.org
Fri Jun 10 10:45:31 CEST 2011


On Friday, 10 de June de 2011 10:11:17 Zeljko wrote:
> Hi al,
> When reading docs about processEvents() it says that
> DeferredDelete events won't be processed if we use
> our own event loop, so does it
> mean that deleteLater() won't destroy that object ?
> What should I do if it is so ? call
> sendPostedEvents(0, QEvent::DeferredDelete) after
> deleteLater() or what ? Is it ok to call sendPostedEvents(0,
> QEvent::DeferredDelete) before call to
> processEvents() in my own loop ?

deleteLater() events (DeferredDelete) are handled specially, to avoid 
something like:

	obj->deleteLater();
	obj->something();
	run a dialog
	obj->somethingElse(); // crash here

DeferredDelete events are only handled at the same loop nesting level that 
they were created in or less deep nesting. They are never handled by deeper 
nesting levels.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110610/a524a0a0/attachment.bin 


More information about the Qt-interest-old mailing list