问候,大家,我目前正在使用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
答案 0 :(得分:0)
感谢大家,我已经通过将插入列表功能移动到insertRows中解决了这个问题,TQVM