SystemTrayIcon/CloseEvent: App crash?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
AngelusNoctis
User
Beiträge: 92
Registriert: Sonntag 16. Dezember 2007, 20:03

Hi

Ich hab ein kleines Problem mit meinem SystemTrayIcon und zwar scheint es so das die App entweder troz event.ignore() schliesst oder die App crasht.

Also ich starte normal die App was auch problemlos funzt und ich seh das SysTrayIcon.

Wenn ich jetzt auf [X] klicke verschwindet das mainWindow, jedoch verschwindet wenige Sekunden später auch das Icon im Tray.


Ganz seltsam ist das ich überhaupt keine Meldung bekomme, auch kein Traceback. ;(


Main:

Code: Alles auswählen

#!/usr/bin/env python

from PyQt4 import QtGui,  QtCore
from mainwindow import showMainWindow
import sys

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)

    # Start and install translator for mainwindow text
    Trans = QtCore.QTranslator()
    Trans.load(QtCore.QLocale.system().name() + '.qm', './translation/')
    app.installTranslator(Trans)

    # Start and install translator for Qt Widgets
    qtTrans = QtCore.QTranslator()
    qtTrans.load( 'qt_' + QtCore.QLocale.system().name(), QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath))
    app.installTranslator(qtTrans)

    # Start App
    main = showMainWindow() 
    main.show() 
    sys.exit(app.exec_())
MainWindow:

Code: Alles auswählen

class showMainWindow(QtGui.QMainWindow, mainWindow):
    def __init__(self): 
        QtGui.QMainWindow.__init__(self) 
        self.setupUi(self)
        
        # Create Icon
        self.createTrayIcon()
    
        # Resize to Content
        self.tableWidget.resizeColumnsToContents() 
        
    # CloseEvent
    def closeEvent(self, event):
        self.hide()
        event.ignore()
        
    def createTrayIcon(self):
        quitAction = QtGui.QAction(self.tr('&Quit'), self)
        self.connect(quitAction, QtCore.SIGNAL('triggered()'), QtGui.qApp, QtCore.SLOT('quit()'))
        
        trayIconMenu = QtGui.QMenu(self)
        trayIconMenu.addAction(quitAction)
        
        trayIcon = QtGui.QSystemTrayIcon(self)
        trayIcon.setContextMenu(trayIconMenu)
        trayIcon.setIcon(QtGui.QIcon(':/images/icon-logo.png'))
        trayIcon.show()
        
Zuletzt geändert von AngelusNoctis am Mittwoch 8. Dezember 2010, 21:38, insgesamt 1-mal geändert.
AngelusNoctis
User
Beiträge: 92
Registriert: Sonntag 16. Dezember 2007, 20:03

Dat wars...

Danke :)
Antworten