Je suis en train d'insérer des données dans un TableView d'un modèle mais je suis en train de faire quelque chose de mal, car les données ne sont pas inséré. La table est mise à jour avec les colonnes et les lignes bien.Les données de modèle non insérés dans QTableView
J'ai donc GraphicsView où je dessine quelques GraphicsItems personnalisés. Chaque fois qu'un nouvel élément est ajouté à la scène, le modèle est supposé être mis à jour et envoyer un signal à TableView pour y insérer également les données.
Ici, je mets à jour le modèle lorsque le nouvel élément est ajouté:
Clothoid *temp = new Clothoid(); temp->setStartPoint(p1); temp->setEndPoint(p2); clothoids.append(temp); scene->addItem(temp); model.setColumnCount(3); model.setRowCount(clothoids.size()); QModelIndex index = model.index(clothoids.size(), 1, QModelIndex()); model.setData(index, clothoids.last()->startCurvature); index = model.index(clothoids.size(), 2, QModelIndex()); model.setData(index, clothoids.last()->endCurvature); index = model.index(clothoids.size(), 3, QModelIndex()); model.setData(index, clothoids.last()->clothoidLength); emit clothoidAdded(&model);
Clothoïdes étant une liste de mes graphicsItems personnalisés:
QList < Clothoid *> clothoids;
Le signal est connecté à la fente dans ma fenêtre principale :
ui->setupUi(this); SpinBoxDelegate delegate; ui->clothoidTable->setItemDelegate(&delegate); connect(ui->graphicsView, SIGNAL(clothoidAdded(QStandardItemModel*)), ui->clothoidTable, SLOT(onClothoidAdded(QStandardItemModel*)));
où la fente est:
void TableViewList::onClothoidAdded(QStandardItemModel *model) { setModel(model); }
Qu'est-ce que je fais mal?