【问题标题】:QStandardItemModel -- delete a rowQStandardItemModel -- 删除一行
【发布时间】:2013-06-02 10:19:24
【问题描述】:

我在QTableView 中使用QStandardItemModel。在这里,我的主窗口中有两个按钮和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());

【问题讨论】:

  • indexes.size() 显示了什么?
  • @Amartel 应用程序崩溃
  • 请建议如何让它工作?

标签: qt qstandarditemmodel


【解决方案1】:

我的建议是 - 您正在尝试删除没有选择的行。试试这个:

void MainWindow::on_pushButton_2_clicked()
{
    QModelIndexList indexes = ui->tableView->selectionModel()->selectedRows();
    while (!indexes.isEmpty())
    {
        model->removeRows(indexes.last().row(), 1);
        indexes.removeLast();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2013-09-08
    • 2014-06-09
    • 2013-05-12
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多