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.

I'm using Python 2.5 and Pyqt 4.4.3

Thanks



minimal example:
----------------

import sys
from PyQt4 import QtCore, QtGui

class Systray(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.createActions()
        self.createTrayIcon()
        self.trayIcon.show()
    #self.show()

    def createActions(self):
        self.quitAction = QtGui.QAction(self.tr("&Quit"), self)
QtCore.QObject.connect(self.quitAction, QtCore.SIGNAL("triggered()"),

  QtGui.qApp, QtCore.SLOT("quit()"))
        self.testAction = QtGui.QAction(self.tr("Test"),  self)
QtCore.QObject.connect(self.testAction, QtCore.SIGNAL("triggered()"), self.test)

    def createTrayIcon(self):
        self.trayIconMenu = QtGui.QMenu(self)
        self.trayIconMenu.addAction(self.quitAction)
        self.trayIconMenu.addAction(self.testAction)

        self.trayIcon = QtGui.QSystemTrayIcon(self)
        self.trayIcon.setIcon(QtGui.QIcon("test.png"))
        self.trayIcon.setContextMenu(self.trayIconMenu)

    def test(self):
        QtGui.QMessageBox.information(self, "title", "hello")
        # closing this terminates the program

app = QtGui.QApplication(sys.argv)
x = Systray()
sys.exit(app.exec_())
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to