我在QTableView中使用QStandardItemModel.在这里,我有两个按钮&我的主窗口内的QTableView.模型内的行会有所不同.
两个按钮用于添加/删除行(测试用例).
向模型添加行正在工作,ADD按钮的插槽: –
void MainWindow::on_pushButton_clicked()
{
model->insertRow(model->rowCount());
}
但是当我从模型中删除一行时,我的程序崩溃了,删除按钮的插槽: –
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());
最佳答案 我的建议是 – 你试图在没有选择的情况下删除行.试试这个:
void MainWindow::on_pushButton_2_clicked()
{
QModelIndexList indexes = ui->tableView->selectionModel()->selectedRows();
while (!indexes.isEmpty())
{
model->removeRows(indexes.last().row(), 1);
indexes.removeLast();
}
}