How to delete a QObject derived class from within one of its own methods
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot update - Add ArticleMetaData) |
hamishwillee
(Talk | contribs) m (Text replace - "<code cpp>" to "<code cpp-qt>") |
||
| Line 26: | Line 26: | ||
In order to delete a QObject-derived class from one of its own methods, developers have to use | In order to delete a QObject-derived class from one of its own methods, developers have to use | ||
| − | <code cpp> | + | <code cpp-qt> |
deleteLater(); | deleteLater(); | ||
</code> | </code> | ||
| Line 34: | Line 34: | ||
Beginner developers sometimes use | Beginner developers sometimes use | ||
| − | <code cpp> | + | <code cpp-qt> |
delete this; | delete this; | ||
</code> | </code> | ||
Latest revision as of 04:17, 11 October 2012
Article Metadata
Compatibility
Platform(s): All
Article
Keywords: Qt, deleteLater
Created: gnuton
(20 Jun 2010)
Last edited: hamishwillee
(11 Oct 2012)
In order to delete a QObject-derived class from one of its own methods, developers have to use
deleteLater();
Since this is a public slot, it can be connected to a signal or it can be just called in any method of the class.
There are no problem if a signal or a method calls more than one time QObject::deleteLater()
Beginner developers sometimes use
delete this;
and this is dangerous since the Qt event loop could invoke a method of the deleted class. Hence, the application or library will crash.
- Related Qt Documentation link
Qt 4.6 deleteLater()

