QAbstractItemModel :: endInsertRows:索引运行时错误无效

时间:2014-08-12 17:35:53

标签: c++ qt4

问候,大家,我目前正在使用QTableView来构建我的c ++ GUI项目。 但是,当我在表中添加行时,运行时错误是QAbstractItemModel :: endInsertRows:发生无效索引。 这个问题只发生在我在QTableView中选择最后一行时,是否有解决此问题的方法?感谢〜

bool TableModel::insertRows(int position, int rows, const QModelIndex &index)
{
    Q_UNUSED(index);
    beginInsertRows(QModelIndex(), position, position+rows-1);
    endInsertRows();
    return true;
}

提交按钮点击插槽:

void MainWindow::on_submitButton_clicked()
{
    reminder node;
    node.setNote(ui->noteInput->toPlainText().toStdString());
    node.setDate(ui->dateInput->text().toStdString());
    QModelIndex index = mymodel->index(0, 0, QModelIndex());
    mymodel->insertRows(0, 1, index);
    mymodel->setData(index, node, Qt::EditRole);
    ui->tableView->scrollToBottom();
 }

使用setData:

 bool TableModel::setData(const QModelIndex &index, const reminder &value, int role)
 {

       if (role == Qt::EditRole) {
                aList.insert(aList.getLength()+1, value); /* aList is a linked List to store reminder */
                emit(dataChanged(index, index));
                aList.saveList(listFile);
                return true;
        }

    return false;
  }

//修改

谢谢大家,我已经通过将插入列表功能移动到insertRows来解决这个问题,TQVM

1 个答案:

答案 0 :(得分:0)

感谢大家,我已经通过将插入列表功能移动到insertRows中解决了这个问题,TQVM