IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Gestion de mousePressEvent [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 28
    Par défaut Gestion de mousePressEvent
    Bonjour à tous,
    j'affiche 2 comboBox dans un widget.
    je cherche à modifier le comportement d'une comboBox quand on clique dessus:
    - si c'est sur le première, je voudrais une utilisation classique (déroulement de la liste et choix)
    - si c'est sur la deuxième, je sors un commentaire et c'est tout.

    Mon exemple fonctionne dans le deuxième cas et pas dans le premier.
    L’évènement n'est pas utilisé par la combo, je pensais que ce serait le cas avec le "event.accept"...

    Pouvez vous me donner un coup de main ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # -*- coding: utf-8 -*-
    import sys
    from PyQt4.QtGui import QApplication, QWidget, QVBoxLayout, QComboBox
     
    class MyComboBox(QComboBox):
        def __init__(self, parent, iE):
            QComboBox.__init__(self, parent)
            self.iE = iE
     
        def mousePressEvent(self, event):
            if self.iE == 2:
                print "clicked"
            else:
                event.accept()
     
    if __name__ == "__main__":
        app = QApplication(sys.argv)
     
        widget = QWidget()
        verticalLayout= QVBoxLayout(widget)
     
        for iEcran in xrange(1, 3):
                comboBox = MyComboBox(widget,iEcran)
                comboBox.addItems(["bid0", "bid1"])
                verticalLayout.addWidget(comboBox)
     
        widget.show()
        app.exec_()

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut, si j'ai bien compris la combo du haut doit se développer et ne pas printer de message, celle du bas print le message et ne doit pas se développer ?

    Alors comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        def mousePressEvent(self, event):
            if self.iE == 2:
                print "clicked"
                event.accept()
            else:
                QComboBox.mousePressEvent(self, event)
    Le principe ici est de réémettre le signal, le réinjecter pour ainsi dire.

    D'une manière générale quand event.ignore() semble sans effet, ce qui arrive fréquemment, il faut utiliser cette méthode.

    NomDuWidget.nomDelEvenement(instance, évènement)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 28
    Par défaut
    Super, c'est juste ce que je cherchais.
    J'étais parti dans les sendEvent et postEvent pour renvoyer l'event mais ça ne marchait pas.

    Milles mercis.
    Begude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2002, 21h37
  2. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19
  3. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo