Tim,
This is the more accurate explanation I was looking for!
darryl
Tim Hoffmann wrote:
Marc Nations schrieb:
Yeah, that's more correct. Since the MessageBox is being called
indirectly the actual value it returns isn't being utilized.
Although now I'm a little confused as to why the app is even
returning a value when the MessageBox is closed. Even if you take
sys.exit() out and just print out the value the app returns, it will
still exit. Basically the whole app acts like a DialogBox that gets
triggered by the MessageBox.
I'm not sure I fully understand what all the exec() function does.
int QApplication.exec_() :
Enters the main event loop and waits until exit() is called, then
returns the value that was set to exit()
QMessageBox.information() should call the inherited QDialog.exec_()
which installs a local event loop, because the dialog is modal.
I found out what's happening:
Closing the QMessageBox is something like QDialog.done(). This emitts
a QApplication.lastWindowClosed() signal if the dialog is the last
window. Because of the default app.quitOnLastWindowClosed == True
exit() will be called for the main loop and the application terminates
regularly.
So by adding app.setQuitOnLastWindowClosed(False) the application does
not terminate any more.
Tim
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt