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 :

QListView changement de sélection

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Points : 24
    Points
    24
    Par défaut QListView changement de sélection
    Salut à tous,
    J'essaye dans ma QListView de me connecter au signal selectionChanged mais je n'y arrive pas :

    Je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        connect(ui->zoneListView,SIGNAL(void selectionChanged ( const QItemSelection & selected, const QItemSelection & deselected )),this,SLOT(listZonesSelectionChangedselectionChanged ( const QItemSelection & selected, const QItemSelection & deselected )));
    Mais j'obtiens l'erreur :
    Object::connect: No such signal QListView::void selectionChanged( const QItemSelection & selected, const QItemSelection & deselected ) in mainwindow.cpp:64
    Object::connect: (sender name: 'zoneListView')
    Object::connect: (receiver name: 'MainWindowClass')


    Le soucis je pense c'est que le signal vient de QAbstractItemView (en protected) dont hérite QListView.

    Comment faire pour récupérer ce signal ???

    Merci à tous.

    PS: Je suis en QT 4.5.

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par robert.tari Voir le message
    Salut à tous,
    J'essaye dans ma QListView de me connecter au signal selectionChanged mais je n'y arrive pas :

    Je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        connect(ui->zoneListView,SIGNAL(void selectionChanged ( const QItemSelection & selected, const QItemSelection & deselected )),this,SLOT(listZonesSelectionChangedselectionChanged ( const QItemSelection & selected, const QItemSelection & deselected )));
    Mais j'obtiens l'erreur :
    Object::connect: No such signal QListView::void selectionChanged( const QItemSelection & selected, const QItemSelection & deselected ) in mainwindow.cpp:64
    Object::connect: (sender name: 'zoneListView')
    Object::connect: (receiver name: 'MainWindowClass')


    Le soucis je pense c'est que le signal vient de QAbstractItemView (en protected) dont hérite QListView.

    Comment faire pour récupérer ce signal ???

    Merci à tous.

    PS: Je suis en QT 4.5.
    Essaie comme ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     connect(ui->zoneListView,SIGNAL(selectionChanged ( const QItemSelection & , const QItemSelection& )),this,SLOT(listZonesSelectionChangedselectionChanged ( const QItemSelection & , const QItemSelection &)));
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Merci, mais j'ai toujours l'erreur :
    Object::connect: No such signal QListView::void selectionChanged ( const QItemSelection &, const QItemSelection & ) in mainwindow.cpp:64
    Object::connect: (sender name: 'zoneListView')
    Object::connect: (receiver name: 'MainWindowClass')

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par robert.tari Voir le message
    Merci, mais j'ai toujours l'erreur :
    Object::connect: No such signal QListView::void selectionChanged ( const QItemSelection &, const QItemSelection & ) in mainwindow.cpp:64
    Object::connect: (sender name: 'zoneListView')
    Object::connect: (receiver name: 'MainWindowClass')
    Effectivement j'avais pas vu. Si je ne me trompe pas, ce signal n'est pas dispo d'apres la doc ici.

    Je sais pas ce que tu veux faire mais de cette maniere je crois pas que cela marchera.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Elle est disponible dans la classe parent en protected slot :
    http://qt.developpez.com/doc/4.5/qabstractitemview/

    Sinon le plus simple en effet est d'expliquer ce que je veux faire
    Alors, je veux griser ou pas des boutons d'actions en fonction de l'élément sélectionné dans la listView et surtout les griser (les boutons) si rien n'est sélectionné.

    Alors j'avais pensé à cet événement qui semble correspondre à un changement de la sélection de la liste ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Argh, oups déjà je viens de voir une de mes erreurs, j'ai pris un slot de la classe listView au lieu d'un signal ... donc forcément cela ne marche pas !

    Donc sinon avec QTCreator, j'ai relié le signal "clicked", qui permet de savoir si on a cliqué sur un item de la listView (cela marche bien), par contre je ne sais pas comment savoir que plus aucun item n'est sélectionné ...

    Y'a-t-il un selectionMode particulier à mettre ? ou un signal que je n'aurai pas vu ?

    Sinon je peux au pire faire une classe dérivée de la ListView et surcharger la méthode (slot) selectionChanged et envoyer un signal que j'aurai créé ... mais c'est pas super user-friendly ou plutôt programmer-friendly

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    J'étais confronté au même problème (le signal QListView::selectionChanged() présent dans Qt3.3 semblait ne plus exister en Qt4.6).
    En fait tous ces signaux ont été regroupés dans un sous-objet QItemSelectionModel accessible dans notre QListView par la méthode selectionModel(). Plus concrètement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // On suppose que MainWindow contient un attribut "QListView* ma_listView"
    MainWindow::MainWindow() {
      // [...]
      connect(ma_listView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
      this, SLOT(on_currentChanged(QModelIndex,QModelIndex)));
    }
    void MainWindow::on_currentChanged(QModelIndex selected, QModelIndex deselected) {
    // On réagit au changement de selection en connaissant l'ancien (deselected) et le nouveau (selected) modèle
    }
    En espérant que ça pourra aider quelqu'un

Discussions similaires

  1. Détection de changement de sélection TextFrame2 sur une zone de texte.
    Par ebeaul12 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/05/2015, 10h34
  2. TableViewer changement de sélection
    Par GouiTPT dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 14/12/2012, 14h05
  3. Réponses: 7
    Dernier message: 04/12/2012, 21h11
  4. Changement de sélection sur combobox
    Par norea dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 27/06/2009, 01h06
  5. Réponses: 5
    Dernier message: 13/02/2008, 10h15

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