Why are you calling the exec_() function from inside the sys.exit() call?<div><br></div><div>From the way it&#39;s programmed, it looks like sys.exit() will execute and hold until it gets a result back from the MessageBox called inside the tray icon. At that point it&#39;s going to exit using the result as it&#39;s argument.&nbsp;</div>
<div><br></div><div>If you just select &#39;OK&#39; then the MessageBox returns a 0, which will then cause a normal termination the program (exit code 0).</div><div><br></div><div><br><br><div class="gmail_quote">On Mon, Jan 12, 2009 at 10:29 AM, Tim Hoffmann <span dir="ltr">&lt;<a href="mailto:tim.hoffmann@uni-bonn.de">tim.hoffmann@uni-bonn.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I write an application with a trayicon as main interface. When I popup a QMessageBox in a slot, the application terminates after closing the box. I have no idea why. Termination is regular (exit code 0 and no exception is raised). However, if I make the widget visible (uncommenting self.show() in example below), termination does not happen.<br>

<br>
I&#39;m using Python 2.5 and Pyqt 4.4.3<br>
<br>
Thanks<br>
<br>
<br>
<br>
minimal example:<br>
----------------<br>
<br>
import sys<br>
from PyQt4 import QtCore, QtGui<br>
<br>
class Systray(QtGui.QWidget):<br>
 &nbsp; &nbsp;def __init__(self):<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QtGui.QWidget.__init__(self)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.createActions()<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.createTrayIcon()<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIcon.show()<br>
 &nbsp; &nbsp;#self.show()<br>
<br>
 &nbsp; &nbsp;def createActions(self):<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.quitAction = QtGui.QAction(<a href="http://self.tr" target="_blank">self.tr</a>(&quot;&amp;Quit&quot;), self)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QtCore.QObject.connect(self.quitAction, QtCore.SIGNAL(&quot;triggered()&quot;),<br>
<br>
 &nbsp;QtGui.qApp, QtCore.SLOT(&quot;quit()&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.testAction = QtGui.QAction(<a href="http://self.tr" target="_blank">self.tr</a>(&quot;Test&quot;), &nbsp;self)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QtCore.QObject.connect(self.testAction, QtCore.SIGNAL(&quot;triggered()&quot;), self.test)<br>
<br>
 &nbsp; &nbsp;def createTrayIcon(self):<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIconMenu = QtGui.QMenu(self)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIconMenu.addAction(self.quitAction)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIconMenu.addAction(self.testAction)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIcon = QtGui.QSystemTrayIcon(self)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIcon.setIcon(QtGui.QIcon(&quot;test.png&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp;self.trayIcon.setContextMenu(self.trayIconMenu)<br>
<br>
 &nbsp; &nbsp;def test(self):<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QtGui.QMessageBox.information(self, &quot;title&quot;, &quot;hello&quot;)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;# closing this terminates the program<br>
<br>
app = QtGui.QApplication(sys.argv)<br>
x = Systray()<br>
sys.exit(app.exec_())<br>
_______________________________________________<br>
PyQt mailing list &nbsp; &nbsp;<a href="mailto:PyQt@riverbankcomputing.com" target="_blank">PyQt@riverbankcomputing.com</a><br>
<a href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt" target="_blank">http://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><br>
</blockquote></div><br></div>