• 4499阅读
  • 1回复

前辈来帮忙解决一个TreeView的问题 [复制链接]

上一主题 下一主题
离线lafezhang
 

只看楼主 正序阅读 楼主  发表于: 2009-12-28
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
程序流程是这样的:选中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的最后一行,就会出现运行时错误。删除非最后一行没问题。这是怎么回事啊?搞了好久都没搞明白
离线bingcaihuang

只看该作者 1楼 发表于: 2012-01-06
回 楼主(lafezhang) 的帖子
你要判断count啊,count都是0了,还怎么删啊
快速回复
限100 字节
 
上一个 下一个