PyQt: Afficher le menu dans une application de plateau de système

Tout d'abord, je suis une expérimentée programmeur en C, mais python. Je veux créer une application simple en python à l'aide de pyqt. Imaginons cette application c'est aussi simple que lorsqu'il est exécuté, il doit mettre une icône dans la barre d'état système et il a proposent une option dans le menu pour quitter l'application.

Ce code fonctionne, il affiche le menu (je ne suis pas connecter la sortie de l'action et ainsi de suite pour faire simple)

import sys
from PyQt4 import QtGui

def main():
    app = QtGui.QApplication(sys.argv)

    trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("Bomb.xpm"), app)
    menu = QtGui.QMenu()
    exitAction = menu.addAction("Exit")
    trayIcon.setContextMenu(menu)

    trayIcon.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Mais ce n'est pas le cas:

import sys
from PyQt4 import QtGui

class SystemTrayIcon(QtGui.QSystemTrayIcon):

    def __init__(self, icon, parent=None):
        QtGui.QSystemTrayIcon.__init__(self, icon, parent)
        menu = QtGui.QMenu()
        exitAction = menu.addAction("Exit")
        self.setContextMenu(menu)

def main():
    app = QtGui.QApplication(sys.argv)

    trayIcon = SystemTrayIcon(QtGui.QIcon("Bomb.xpm"), app)

    trayIcon.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

J'ai sans doute raté quelque chose. Il n'y a pas d'erreurs mais dans le deuxième cas, quand je clique avec le bouton droit qu'il n'affiche pas le menu.

  • Comme un compagnon de programmeur C juste d'entrer dans Python. Je peux dire "errrmmm" aussi.
  • Si votre réponse résout le problème, veuillez choisir la communauté wiki copie de votre réponse comme "la" réponse (je ne vais pas faire de la réputation :). J'ai aussi modifié votre réponse à fixer un mineur de faute de frappe.
InformationsquelleAutor Nextorlg | 2009-05-21