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 :
- #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 :
- #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_ */
|
Message édité par Digaboy le 11-08-2008 à 23:06:20