Bosoir à tous,
Voilà j'ai un petit soucis dans mon code. Je souhaite afficher un tableau issu d'une base de donnée (ca c bon) et pouvoir selectionner une ligne du tableau pour pouvoir ulterieurement la modifier ou la supprimer. Mais déjà récupérer les infos de la ligne me pose problème.
Voici mon code
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 ... QSqlTableModel *model = new QSqlTableModel; model->setTable("Clients"); model->select(); model->removeColumn(0); QTableView *view = new QTableView; view->setModel(model); view->setSelectionBehavior(QAbstractItemView::SelectRows); // Layout : boutons du bas (ajouter, quitter...) modifier = new QPushButton("&Modifier"); annuler = new QPushButton("&Annuler"); QHBoxLayout *boutonsLayout = new QHBoxLayout; boutonsLayout->setAlignment(Qt::AlignLeft); boutonsLayout->addWidget(modifier); boutonsLayout->addWidget(annuler); QVBoxLayout *layoutPrincipal = new QVBoxLayout; layoutPrincipal->addWidget(view); layoutPrincipal->addLayout(boutonsLayout); QWidget *zoneCentrale = new QWidget; zoneCentrale->setLayout(layoutPrincipal); setCentralWidget(zoneCentrale); // Connexions des signaux et des slots connect(annuler, SIGNAL(clicked()), this, SLOT(menublanc())); connect(modifier, SIGNAL(clicked()), this, SLOT(modifierClientBdd())); ...
Et le slot modifierClientBdd()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void FenPrincipale::modifierClientBdd() { QItemSelectionModel *selection = view->selectionModel(); QModelIndexList listeSelections = selection->selectedIndexes(); QString elementsSelectionnes; for (int i = 0 ; i < listeSelections.size() ; i++) { QVariant elementSelectionne = model->data(listeSelections[i], Qt::DisplayRole); elementsSelectionnes += elementSelectionne.toString() + "<br />"; } QMessageBox::information(this, "Eléments sélectionnés", elementsSelectionnes); }
Le code compile, mais qd je clique sur le bouton "modifier" le programme plante...
Où est mon erreur??
Merci d'avance
Partager