[Interest] Reasons why deleteLater() might not work

Michael Jackson mike.jackson at bluequartz.net
Sun Apr 3 20:23:01 CEST 2022

So buried deep in the code base (which was being reused from another project) was an event filter that was specifically looking for deleteLater() and then swallowing it up. I need to figure out why in the other project we were doing that. I knew it was "user error", just needed some help getting me point in the right direction to look for issues.

We would like to clean up children items when they are removed from the UI. They are generated on the fly and may contain heavier data that one would want just laying around. Now that deleteLater() is working, in fact we just remove the single parent, call deleteLater() on it and everything finally gets deleted as it should.

Thanks everybody for the help.

Mike Jackson 

On 4/3/22, 4:25 AM, "Interest on behalf of Nikos Chantziaras" <interest-bounces at qt-project.org on behalf of realnc at gmail.com> wrote:

    On 01/04/2022 16:17, Michael Jackson wrote:
    > I have a bit of code where in I am removing a QWidget from the UI and it needs to be truly cleaned up as its parent QObject is also being cleaned up. I thought I did the appropriate:
    > layout->removeWidget(widget);
    > widget->setParent(nullptr);
    > widget->deleteLater();

    Why not simply delete the parent, which will then delete all its 
    children immediately?

    Also, I don't even remember a single case where I ever needed deleteLater().

    Interest mailing list
    Interest at qt-project.org

More information about the Interest mailing list