QT中的QListWidget的takeItem方法?

open_files_widget_->removeItemWidget(open_files_widget_->item(file_num));
 qDebug() << open_files_widget_->count() << "file_num: " << file_num;
    QListWidgetItem *item = open_files_widget_->takeItem(file_num);

已经debug得到count = 1, file_num = 0,但是到了takeItem这句时出界错误,直接崩溃了,而且出界问题仅仅只是在QListWidget只剩一个item的时候发生,这是为什么呢?

求大神解答!!!谢谢!!!

问题已解决,虽然还是不太懂。。。
关键是removeItemWidget是删除item中的widget,而takeItem或者直接delete item都是删除在QListWidget中的全部item信息

还要看看open_files_widget是否有效,合法对象

确定open_files_widget是否QListWidgetItem类对象?

查看 listWidget 相关的槽函数是否有使用一些索引之类的操作,takeItem(row) 后会去调用一边 listWidget 的槽函数