QTableView:如何正确创建 QModelIndex?

标签 qt qtableview 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;
}

我的模型创建了一个这样的索引:
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());

关于QTableView:如何正确创建 QModelIndex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492470/

相关文章:

python-3.x - 在 PyQt5 中,如何使用拖放正确移动 QTableView 中的行

c++ - 打印带有垂直和水平标题的 QTableView

c++ - 如何使用 QSqlQueryModel 在 QTableView 中显示多个选择的结果

qt - QAbstractTableModel : index() vs. createIndex()

c++ - Qt3D 默认统一和属性

c++ - 在 QGraphicsView 上锁定 View

qt - 对 QTableWidget 执行撤消和重做操作

qt - 如何将 QModelIndex 与新行关联?

C++ Qt 命名空间和循环依赖

c++ - 如何翻译 qmessagebox 中的按钮?