[PyQt] How to explicitly delete a QDialog when finished with it?
jnbarchan at gmail.com
Thu Jul 12 11:07:41 BST 2018
[I'm sorry if this has been asked before, but I have Googled and can't find
In PyQt 5, how are you supposed to actually delete a (dynamically-created)
QDialog once you are done with it, *if you cannot create it with
Existing code creates many (modal) dialogs repeatedly, usually calling
exec(). Some of the calls deliberately do *not* pass WA_DeleteOnClose
(e.g. I think some places want to access stuff in the dialog after the user
has exited it).
I get the same dialogs repeatedly created. Investigating via
QApplication.allWidgets(), I see:
- If a parent was specified, it does get deleted, but not till the
parent gets deleted, which is too late (space-wise).
- If parent was None, I'm not even sure when it does get deleted.
Either way, if I do *not* specify WA_DeleteOnClose I want to delete it
explicitly when I'm done reading its values or whatever. In C++ I'd call
delete explicitly. What should I do from PyQt/Python? del??
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the PyQt