2015-03-30 1 views
1

code comme suit .Après avoir fonctionné pendant environ une demi-minute, puis fermez la fenêtre, puis la boîte de dialogue "Python a cessé de fonctionner" apparaît (vous feriez mieux d'essayer plus d'une fois.) Je me demande pourquoi cela arrive-t-il une solution à cela? testé sur Windows avec PyQt4-4.11.3-gpl-Py3.4-Qt4.8.6-x32.exePython a cessé de travailler dans l'application PyQt

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 


class MainWindow(QMainWindow): 

    def __init__(self): 
     super().__init__() 

     self.setWindowIcon(QIcon("./wa.png")) 
     self.createTrayIcon() 

    def createTrayIcon(self): 

     self.trayIcon = QSystemTrayIcon() 
     self.trayIcon.setIcon(self.windowIcon()) 
     self.trayIcon.show() 


if __name__ == "__main__": 
    import sys 
    app = QApplication(sys.argv) 

    ui = MainWindow() 
    ui.show() 
    sys.exit(app.exec_()) 
+0

Etes-vous sûr de pouvoir exécuter le code? L'appel 'super()' sans argument a semblé faux, et en effet quand j'essaie d'exécuter le code, il se plaint qu'il nécessite au moins un argument. –

+0

@IosifSpulber le code fonctionne avec py3 – iMath

Répondre

0

Je fais mon travail de PyQt sur linux, donc il pourrait y avoir des différences, mais le plus souvent je construire mon MainWindow avec l'appel suivant:

class MainWindow(QMainWindow): 
    def __init__(self, parent=None): 
     super(MainWindow, self).__init__(parent) 
     ... 

je peux exécuter votre code dans python3, mais après je quitte je reçois la faille Segmentation. Si je change le constructeur à ce que j'ai indiqué ci-dessus, le défaut n'est pas reproduit.

Espérons que cela aide