2 pièce(s) jointe(s)
Modèle-vue et utilisation des délégués
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:
Code:
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;
}
} |
Les lignes de 10 à 13 concerne l'intégration de du fameux 'delegate'.
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 ?