- removeitemwidet只是删除该item对应的widget,不会删除该item,如果这个item有Qstring,该qstring会保留下来;
- takeitem直接删除该item;
- clear函数清除所有的item。
测试程序:
QListWidget _userListW=new QListWidget;
_userListW->insertItem(0, "sadf");
_userListW->setItemWidget(_userListW->item(0), new QLabel("2e3"));
_userListW->insertItem(1, "sadf");
_userListW->setItemWidget(_userListW->item(1), new QLabel("2e3"));
int itemcount=_userListW->count();
//保留用户自定义图层的第一行:文件选择
while (_userListW->count()>0)
{
_userListW->removeItemWidget(_userListW->item(0));
itemcount = _userListW->count();
_userListW->takeItem(0);
itemcount = _userListW->count();
}
//_userListW->clear();
此处,循环体内,执行remove后itemcount不会变化,执行take后itemcount减一。
如果不执行take,执行removeitemwidget后,第一行存入的字符串sadf仍然会保留下来。