<p dir="ltr">Den 8 feb 2016 6:03 em skrev "Damon Lynch" <<a href="mailto:damonlynch@gmail.com">damonlynch@gmail.com</a>>:<br>
><br>
> The PyQt5 docs explicitly say not to put the application startup logic in a function e.g. main():<br>
><br>
> <a href="http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html#object-destruction-on-exit">http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html#object-destruction-on-exit</a><br>
><br>
> Whereas setuptools and its entry_points feature requires the startup logic be in a function.<br>
><br>
> From looking through a bunch of projects on github, I see that the great majority simply ignore the official PyQt5 advice, and have a main() type function with all their startup logic. <br>
><br>
> However at least one project takes the approach of deleting PyQt objects before exit (drawing on an insight offered by Dr. Koval):<br>
><br>
> def main():<br>
>     import sys<br>
>     app = QtGui.QApplication(sys.argv)<br>
>     window = DataViz()<br>
>     window.show()<br>
>     app.exec_()<br>
>     # fixed segfaults at exit:<br>
>     # <a href="http://python.6.x6.nabble.com/Application-crash-on-exit-under-Linux-td5067510.html">http://python.6.x6.nabble.com/Application-crash-on-exit-under-Linux-td5067510.html</a><br>
>     del window<br>
>     del app   <br>
>     sys.exit(0)<br>
><br>
> if __name__ == '__main__':<br>
>     main()<br>
><br>
><br>
> Source: <a href="https://github.com/subhacom/dataviz/blob/e62a591149750e5e5d21f13b4dfee28409a3d683/dataviz/dataviz.py">https://github.com/subhacom/dataviz/blob/e62a591149750e5e5d21f13b4dfee28409a3d683/dataviz/dataviz.py</a><br>
><br>
> Is this approach guaranteed to work as well as the approach specified in the official docs?</p>
<p dir="ltr">I was not even aware of this advice from PyQt, but have been using a function for several projects without problems. Guess I've just been lucky :)</p>
<p dir="ltr">I'm also interested in answer. </p>
<p dir="ltr">Elvis <br>
><br>
> Thanks<br>
> Damon<br>
><br>
><br>
><br>
><br>
> -- <br>
> <a href="http://www.damonlynch.net">http://www.damonlynch.net</a><br>
><br>
> _______________________________________________<br>
> PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><br>
> <a href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt">https://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><br>
</p>