I am working with PySide and PyQt for GUI development. I have been using these codes to run a GUI application:
app = QApplication(sys.argv)
ex = MyWin()
ex.show()
sys.exit(app.exec_())
Accidentally I found if I replace sys.exit(app.exec_()) with only app.exec_(), the program still works fine and it can exit correctly.
So what is the difference between these two? Is there a reason I should use sys.exit(app.exec_())?
As I read the Python documentation, argument arg can be an integer giving the exit status. So return of app.exec_() can tell code exit status. As the documentation for QCoreApplication.exit (int returnCode = 0) says,
By convention, a returnCode of 0 means success, and any non-zero value indicates an error.
So the reason is to tell Python the code exit status from PyQt. If you avoid it, the program will close immediately.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With