Bonjour à tous,
Je réalise actuellement une IHM permettant l'ouverture en lecture/écriture d'un fichier "tablué" par l'intermédiaire d'un tableau:
- la vue est représentée par une QTableView,
- le model est un QStandardItemModel,
- le controller (c'est lui qui me cause des problèmes) devra être dérivé de QStyledItemDelegate
La construction de la vue, l'intégration du modèle et son remplissage ne pose pas de problème. C'est lorsque j'intègre un 'delegate' à mon modèle que j'ai un soucis:
- Sans l'intégration du 'delegate', mon tableau et son contenu (les cellules) sont visbles,
- En ajoutant un 'delegate', je n'ai plus que les headers de visibles, le contenu de mon tableau est vide: c'est à dire que je ne vois même plus la démarcation des lignes ni des colonnes...
EDIT: Rajout de capture d'écran en PJ qui seront bien plus parlantes
ci dessous la fonction qui affiche mon tableau:
Les lignes de 10 à 13 concerne l'intégration de du fameux 'delegate'.
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 void WEdit::updateTable(FileEdit* file){ //clean up cleanTable(); modelTable = new QStandardItemModel(file->getSignals().size(), file->getHeaders().size()); modelTable->setHorizontalHeaderLabels(file->getHeaders()); myTable->setModel(modelTable); //Set delegate // QStyledItemDelegate myDelegate; //essai 1 TableDelegate myDelegate; //essai 2 myTable->setItemDelegate(&myDelegate); //Feed myTable for (int row = 0; row < file->getSignals().size(); ++row) { for (int column = 0; column < file->getHeaders().size(); ++column) { QModelIndex index = modelTable->index(row, column, QModelIndex()); modelTable->setData(index, QVariant(file->getSignals().at(row)->myParameters.value(file->getHeaders().at(column)))); } } myTable->resizeColumnsToContents(); myTable->horizontalHeader()->setStretchLastSection(true); } void WEdit::cleanTable(){ if(!(NULL == myTable->selectionModel())){ QItemSelectionModel *m = myTable->selectionModel(); delete m; } }
Le problème survient également lorsque j'utilise directement un QStyledItemDelegate que je n'ai pas dérivé...
Pouvez vous m'indiquer ce qu'il me manque pour que je puisse utiliser les delagates correctement ?
Partager