Bonjour
Je viens de me mettre à QT et j'ai un petit soucis. Donc j'essaie de faire un menu de selection assez classique.
Pour le moment j'ai quelque chose qui ressemble à ça:
Ce que j'essaie de faire c'est que lorsque l'on clique sur une fleche ça transmet l'élément d'un coté et de l'autre. Le problème c'est quand je clique il se passe rien alors que la variable elementSelectionne contient bien quelque chose.
Voici mon code
Fichier FenPrincipal.cpp
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #include "FenPrincipale.h" FenPrincipale::FenPrincipale() { //Zone Gauche listePaysGauche = new QStringList; *listePaysGauche << "France" << "Espagne" << "Italie" << "Portugal" << "Suisse"; modeleGauche = new QStringListModel(*listePaysGauche); vueGauche = new QListView ; vueGauche->setModel(modeleGauche); vueGauche->setSelectionMode(QAbstractItemView::ExtendedSelection); //Zone milieu pour boutons flecheDroite = new QPushButton(">"); flecheDoubleDroite = new QPushButton(">>"); flecheGauche = new QPushButton("<"); flecheDoubleGauche = new QPushButton("<<"); QVBoxLayout *layoutbouton = new QVBoxLayout; layoutbouton->addWidget(flecheDroite); layoutbouton->addWidget(flecheDoubleDroite); layoutbouton->addWidget(flecheGauche); layoutbouton->addWidget(flecheDoubleGauche); //Zone droite listePaysDroite = new QStringList; listePaysDroite->append("Russie"); modeleDroite = new QStringListModel(*listePaysDroite); vueDroite = new QListView ; vueDroite->setModel(modeleDroite); vueDroite->setSelectionMode(QAbstractItemView::ExtendedSelection); //Layout principal QHBoxLayout *layoutCentral = new QHBoxLayout; layoutCentral->addWidget(vueGauche); layoutCentral->addLayout(layoutbouton); layoutCentral->addWidget(vueDroite); setLayout(layoutCentral); connect(flecheDroite, SIGNAL(clicked()), this, SLOT(clicFlecheDroite())); } void FenPrincipale::clicFlecheDroite() { QItemSelectionModel *selection = vueGauche->selectionModel(); QModelIndexList listeSelections = selection->selectedIndexes(); QString elementsSelectionnes; for (int i = 0 ; i < listeSelections.size() ; i++) { QVariant elementSelectionne = modeleGauche->data(listeSelections[i], Qt::DisplayRole); listePaysDroite->append(elementSelectionne.toString()); } }
Fichier FenPrincipal.h
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
29
30
31
32 #ifndef FENPRINCIPALE_H_ #define FENPRINCIPALE_H_ #include <QApplication> #include <QtGui> class FenPrincipale : public QWidget { Q_OBJECT public: FenPrincipale(); private slots: void clicFlecheDroite(); private: QListView *vueGauche; QStringListModel *modeleGauche; QListView *vueDroite; QStringListModel *modeleDroite; QStringList *listePaysGauche; QStringList *listePaysDroite; QPushButton *flecheDroite; QPushButton *flecheDoubleDroite; QPushButton *flecheGauche; QPushButton *flecheDoubleGauche; }; #endif /* FENPRINCIPALE_H_ */
J'ai l'impression que l'affichage n'est pas mis à jour. Si vous pouviez m'aider merci d'avance
Partager