On 2022-04-01 14: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();

I put a "std::cout <<... " in the widget's destructor but I never see
it printed. I put a break point in the destructor and the break point
never gets hit. Looked around on the internet, various forums, double
checked that the event loop is actually running, called
qtapp->eventLoop()->processEvents() (or whatever that bit of code is)
a few times. Nothing. Currently we are leaking memory because we are
creating the widget but never deleting the widget when it is removed
from the UI. I'll assume since I have complete control of the UI that
the event loop is running. The last line in our main() is app.exec();
so I am assuming the event loop is running. This was originally with a
self-built Qt 5.15.2 on macOS 10.15 (Catalina) but I installed the
normal Qt 5.15.2 from www.qt.io and it behaves the same way. I have
other applications where this does actually work so I am trying to
figure out where in this new version of the application we messed up.
If anyone has any thoughts on where to look I would really appreciate
the sanity check.

If we are in the middle of a signal being fired would that stop the
deleteLater() from working?
Do I need to manually disconnect all signals/slots for deleteLater() to work?
We have a mix of new style connects and old style connects? Is that
messing with deleteLater()?



One situation I've came across in the past was:
https://bugreports.qt.io/browse/QTBUG-83030


Regards,
--
Sérgio Martins | sergio.mart...@kdab.com | Senior Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - The Qt, C++ and OpenGL Experts
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to