问:如何以编程方式在TableView单元格中开始编辑?

时间:2016-03-22 08:53:46

标签: qt uitableview insert row edit

我在Windows7上使用Qt5 在我当前的应用程序中,我有一个QTableView,我刚刚插入了一个新行(位于表格的底部) - 如下所示:

enter image description here

之后,我想让光标自动准备好在第一个单元格中进行编辑(见上面 - 红色标记),而无需在该单元格内单击鼠标。我该怎么做?

这是我现在要插入新行的代码:

void MyTable::addNewRow()
{
    model->insertRow(model->rowCount());
    ui->tableView->scrollToBottom();
    // ??? to programmatically start editing in 1st cell
    // ...
}

感谢您的时间和耐心!

1 个答案:

答案 0 :(得分:1)

您需要识别要编辑的单元格,并为该模型索引调用QAbstractItemView::edit()函数。例如:

int rows = ui->tableView->model()->rowCount();

// Get the last row's model index (first column)
QModelIndex index = ui->tableView->model()->index(rows - 1, 0);

// Start editing the cell
ui->tableView->setCurrentIndex(index);
ui->tableView->edit(index);