<div dir="ltr"><div>To minimize memory use and to avoid segfaults at program exit, when deleting PyQt objects should one use:<br><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-size:9pt"><span style="font-family:monospace,monospace">somepyqtobject.deleteLater()</span></pre>or simply<br><br><span style="font-family:monospace,monospace">QObjectCleanupHandler().add(somepyqtobject)</span><br><br></div>or both, or something else?<br clear="all"><div><div><div><br></div><div>I have come across this issue in my code because of a serious problem maintaining the correct layout of child widgets within a QSplitter. In this particular case widgets can be hidden and shown by way of a toggle switch:<br><img src="http://www.damonlynch.net/rapid/screenshots/beta/20160209rpd-devicespanel-timeline.png" height="534" width="156"><br><br>Upon activating the toggle switch, if I do not destroy the QWidget that lays out the widgets above the splitter handle (immediately above the timeline), and replace it with a new instance of the same QWidget, the layout of the child widgets is badly wrong with respect to vertical alignment within the layout andĀ  minimum widget size. If I merely replace the parent QWidget's layout with .setLayout(), for example, the layout only becomes correct only when the user resizes the application window or moves the splitter handle. Therefore as best I can tell, the existing instance of the QWidget must be replaced every timeĀ  a child widget is hidden / shown. Whether this is peculiar to child widgets in QSplitter children, I cannot say.<br><br></div><div>Thanks,<br></div><div>Damon<br></div><div>-- <br><div class="gmail_signature"><a href="http://www.damonlynch.net" target="_blank">http://www.damonlynch.net</a><div></div><div></div><div></div></div>
</div></div></div></div>