QTableView: كيف يمكنني إنشاء QModelIndex بشكل صحيح؟
-
21-09-2019 - |
سؤال
أحاول إدخال وضع التحرير على خلية معينة مثل هذا:
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;
}
ينشئ نموذجتي فهرس مثل هذا:
QModelIndex TableModel::index(int row,int column,QModelIndex parent) const {
Q_UNUSED(parent);
return createIndex(row,column,0);
}
يبدو أن ناتج التصحيح مثل هذا:
row: 9 col: 1 index: QModelIndex(9,1,0x0,TableModel(0xbf3f50) )
أنا متأكد إلى حد ما من أن الفهرس غير صالح إلى حد ما setCurrentIndex()
لا يبدو أنه يعمل.
المحلول
يا إلهي! الأرض ابتلعني!
تبدأ أرقام الصفوف بالصف 0 ، كنت بحاجة للقيام
int r=tm->rowCount(QModelIndex())-1;
QModelIndex id=tm->index(r,ec,QModelIndex());
لا تنتمي إلى StackOverflow