Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité régulier
    Inscrit en
    août 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 39
    Points : 6
    Points
    6

    Par défaut [QtGui] setContextMenu et clic gauche

    Bonjour,

    J'ecrit actuellement un petit outils qui crée un menu dans le tray de windows.
    code basic :
    Code :
    1
    2
    3
    4
    5
     
    QtGui.QSystemTrayIcon.__init__(self, icon, parent)
            menu = QtGui.QMenu(parent)
            ...
            self.setContextMenu(menu)
    Mon probleme, c'est que ce menu marche parfaitement mais pour l'ouvrir, il faut faire un clic droit sur l'icone. Est-il possible d'ouvrir ce type de menu en faisant un clic gauche ? C'est plus naturel pour ceux qui vont l'utiliser ...
    Merci

  2. #2
    Expert Confirmé
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 271
    Points : 3 753
    Points
    3 753

    Par défaut

    Bonjour,

    Je ne crois pas que mettre le menu du QSystemTrayIcon sur le clic gauche soit une bonne idée, parce que les autres icones du tray marchent aussi avec le menu au clic droit. Mais je n'ai essayé que sous Windows.

    Par contre, on peut lancer une application avec le clic gauche assez facilement, ce qui permet, par exemple, d'avoir une calculatrice (ou n'importe quoi d'autre) toujours disponible sans qu'elle prenne de la place sur la barre des tâches quand on ne s'en sert pas:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class SystemTrayIcon(QtGui.QSystemTrayIcon):
        def __init__(self, icon, parent=None):
            super(SystemTrayIcon, self).__init__(icon, parent)
     
            self.activated.connect(self.lancementprog)
     
        def lancementprog(self, raison):
            if raison == QtGui.QSystemTrayIcon.Trigger:
                self.fen = Calculatrice()
                self.fen.show()
    [Edit] je viens de voir un exemple avec un menu sur le clic gauche et un autre sur le clic droit: http://rowinggolfer.blogspot.fr/2011...n-example.html.
    Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Invité régulier
    Inscrit en
    août 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 39
    Points : 6
    Points
    6

    Par défaut

    Bon j'y arrive toujours pas, mais je vais fouiller avec tes infos.
    Mais sur le fond tu a raison, c'est une convention. Juste que avant j'avais développé cette appli avec un autre language et les utilisateurs l'avait au clic gauche, mais ils vont s'y faire !!
    Merci

  4. #4
    Expert Confirmé
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 271
    Points : 3 753
    Points
    3 753

    Par défaut

    Bonjour,

    En creusant un peu cette question, j'ai trouvé qu'on pouvait utiliser ce QSystemTrayIcon de 2 façons différentes:
    1- on lance le QSystemTrayIcon qui lance le programme
    2- on lance le programme qui lance le QSystemTrayIcon

    J'ai fait un petit code test qui met en oeuvre la solution 2, que tu trouveras ici (il faut ajouter une icone "icone.png"):

    http://www.developpez.net/forums/d12...s/#post7056382.

    Essaie et dis-moi ce que tu en penses.
    Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
    Mes recettes python: http://www.jpvweb.com

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •