+ 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 : 7
    Points
    7

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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é Sénior
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 610
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 610
    Points : 4 872
    Points
    4 872
    Billets dans le blog
    6

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    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 : 7
    Points
    7

    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é Sénior
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 610
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 610
    Points : 4 872
    Points
    4 872
    Billets dans le blog
    6

    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.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com