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

Discussion :

Différencier un clic droit et gauche sur QTableView

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut Différencier un clic droit et gauche sur QTableView
    Bonjour,



    J'ai une fenêtre dans laquelle il y a plusieurs Qtableview.

    On peut faire un clic gauche qui génère différente action ou un droit qui ouvre un menu.

    A lors actuel, si il fait un clic gauche il génère les actions donc ok

    Mais si je fais un clic droit, j'ouvre mon menu mais je génère aussi ces actions.... savez vous comment différencier les 2 clics afin d'éviter cela ?



    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Par défaut
    Vous pouvez jeter à un oeil à QMouseEvent::button()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    Salut et merci pour ta réponse mais je n'arrive pas à surcharger cette méthode....

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Qui a parlé de surcharger quoi que ce soit... Par manque d'information, GreatTux a supposé que les "actions" sont dûes à ta redéfinition de mousePressEvent, et donc grâce à la méthode button() tu peux tester quel bouton a été pressé (l'objet QMouseEvent étant passé en paramètre de mousePressEvent).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    Salut,

    Pour faire simple, j'ai un Qtableview j'utilise le slot clicked(QmodelIndex e)
    C'est dans ce slot que j'ai ma fonction.

    Tu sait comment récupérer le clic depuis cette fonction ?

    Merci d'avance

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Malheureusement, le signal clicked() ne transporte pas l'information du bouton utilisé pour cliqué, il est déclenché pour chaque bouton. Seul un QMouseEvent porterait cette information.

    Tu n'as pas d'autre choix que de redéfinir mousePressEvent...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void MyTableView::mousePressEvent ( QMouseEvent * e )
    {
        if (e->button() == Qt::LeftButton)
            QTableView::mousePressEvent(e);
        else
            QWidget::mousePressEvent(e); // ne devrait pas envoyer le signal clicked()
    }

Discussions similaires

  1. [MooTools] Evénement pour clic droit ou gauche
    Par drick35 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 02/11/2012, 15h46
  2. [Débutant] Tester clic droit ou gauche souris
    Par shaun_the_sheep dans le forum C#
    Réponses: 4
    Dernier message: 02/10/2012, 09h57
  3. supprimer les marges des côtés droit et gauche sur iphone
    Par mikesquake dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 30/08/2010, 16h40
  4. Spécifier un clic droit ou gauche dans SIGNAL?
    Par maroua_mm dans le forum Qt
    Réponses: 12
    Dernier message: 08/09/2009, 14h12
  5. clic droit et gauche
    Par marwen1986 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 07/09/2008, 10h06

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