Je suis en train de passer en mode d'édition sur une cellule spécifique comme celui-ci:QTableView: comment créer correctement un QModelIndex?
void MainWindow::on_addButton_released() {
tm->addRow();
tableView->scrollToBottom();
int ec=tm->firstWritableColumn();
int r=tm->rowCount(QModelIndex());
QModelIndex id = tm->index(r, ec, QModelIndex());
tableView->setCurrentIndex(id);
tableView->edit(id);
qDebug() << "row:" << r << " col:" << ec << "index:" << id;
}
Mon modèle crée un index comme celui-ci:
QModelIndex TableModel::index(int row,int column,QModelIndex parent) const {
Q_UNUSED(parent);
return createIndex(row,column,0);
}
La sortie de débogage ressemble à ceci:
row: 9 col: 1 index: QModelIndex(9,1,0x0,TableModel(0xbf3f50))
Je suis assez sûr que l'index est en quelque sorte invalide car setCurrentIndex()
ne semble pas fonctionner.
Votre 'index()' méthode ne pas remplacer quoi que ce soit ('' QModelIndex' par rapport const QModelIndex & '). Copier-coller une erreur? –