[Qt-interest] QObject::deleteLater and private event loop (not using QCoreApplication::exec())
Nikos Chantziaras
realnc at arcor.de
Fri Jun 10 13:27:59 CEST 2011
On 06/10/2011 11:45 AM, Thiago Macieira wrote:
> 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
Just out of curiosity, why would anyone try to avoid the above? It
looks exactly like trying to avoid:
delete obj;
obj->something();
It's the same kind of coding mistake.
More information about the Qt-interest-old
mailing list