4

我在QStandardItemModel里面使用QTableView。在这里,我的主窗口中有两个按钮和QTableView。模型内部的行会有所不同。有两个按钮可以添加/删除一行(测试用例)。

向模型添加行正在工作,插槽用于ADD button:--

void MainWindow::on_pushButton_clicked()
{
    model->insertRow(model->rowCount());
}

但是当我从模型中删除一行时,我的程序崩溃了,插槽Delete button:--

void MainWindow::on_pushButton_2_clicked()
{
    QModelIndexList indexes = ui->tableView->selectionModel()->selection().indexes();
    QModelIndex index = indexes.at(0);
    model->removeRows(index.row(),1);

}

请建议我必须在我的代码中更改哪些内容才能使删除工作。

编辑 : - -

得到它的工作。

QModelIndex currentIndex = ui->tableView->selectionModel()->currentIndex();
model->removeRow(currentIndex.row());
4

1 回答 1

3

我的建议是 - 你试图删除没有选择的行。尝试这个:

void MainWindow::on_pushButton_2_clicked()
{
    QModelIndexList indexes = ui->tableView->selectionModel()->selectedRows();
    while (!indexes.isEmpty())
    {
        model->removeRows(indexes.last().row(), 1);
        indexes.removeLast();
    }
}
于 2013-06-07T06:02:46.030 回答