程序流程是这样的:选中TreeView中的一行后,点击按钮,就会删除该行。逻辑如下
按钮的方法:
void Config::delUI()
{
QModelIndex index=m_view->selectionModel()->currentIndex();
QAbstractItemModel *model=m_view->model();
model->removeRow(index.row(),index.parent());
}
其中的Model是我派生自QAbstractItemModel 的类,该类的removeRows()函数如下:
bool G_UIModel::removeRows ( int row, int count, const QModelIndex & parent )
{
G_MenuItem * father=this->getItem(parent);
beginRemoveRows(parent, row, row+count-1);
delete(father->children.takeAt(row));
endRemoveRows();
return true;
}
其中father->children是一个QList<G_MenuItem *>。
问题描述如下:
删除一般情况下能正常工作,但是如果是想要删除每个Parent的最后一行,就会出现运行时错误。删除非最后一行没问题。这是怎么回事啊?搞了好久都没搞明白