[python] pyqt4,system tray,zavreni aplikace

Petr Vanek petr na scribus.info
Čtvrtek Červen 17 14:36:50 CEST 2010


On Jun 17, 2010 (Thursday), at 1:56 PM, vepro wrote:

> Pratele,
> Zkousim udelat cast kodu, ktera ma mit za cil vytvorit v system tray  
> ikonu + menu. V tomto menu budou ruzne polozky (ktere budou dale  
> otevirat ruzna okna) a take polozka Exit. Polozka Exit ukonci celou  
> aplikaci. Zatim se mi podaril nasledujici kod (viz nize), ktery  
> aplikaci ukonci, avsak v konzoli se objevi: Segmentation fault. Je  
> to nekorektni postup, ci co to presne znamena?? Nejake navrhy jak to  
> udelat pr  ipadne lepe? Dekuji

já vždycky systrayicon používal s QWidget parent.

class Widget(QtGui.QWidget):
     ...
     self.systray = QSystemTrayIcon(sef)
     ...

pak to většinou šlo bez pádů. Jo, a místo app.exit() jsem dával  
widget.close(), ale v tom by problém být neměl.

>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> import sys
> from PyQt4 import QtGui, QtCore
>
> class SystemTrayIcon(QtGui.QSystemTrayIcon):
>        def __init__(self, icon, parent=None):
>                QtGui.QSystemTrayIcon.__init__(self,parent)
>                self.setIcon(QtGui.QIcon("./pig_icon.gif"))
>                self.trayMenu = QtGui.QMenu()
>                self.exitAction = self.trayMenu.addAction("Exit")
>                self.loadAction = self.trayMenu.addAction("Load")
>                self.setContextMenu(self.trayMenu)
>                self.connect(self.exitAction,  
> QtCore.SIGNAL('triggered()'), self.closeApp)
>                self.connect(self.loadAction,  
> QtCore.SIGNAL('triggered()'), self.load)
>        def closeApp(self):
>                app.exit()
>        def load(self):
>                print "load"
>
> if __name__ == '__main__':
>        app = QtGui.QApplication(sys.argv)
>        trayIcon = SystemTrayIcon(QtGui.QIcon())
>        trayIcon.show()
>        sys.exit(app.exec_())
>
>
> Vepro
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python



Další informace o konferenci Python