2012-03-07 90 views
4

QListWidget有一个名为clear()的成员。此方法状态的文档:如何清空QListWidget而不删除它包含的所有QListItemWidgets?

void QListWidget::clear() [slot] 
Removes all items and selections in the view. 
Warning: All items will be permanently deleted. 

我怎样才能避免所有的项目被永久删除?我只想清除列表内容,以便我可以用不同的数据重新填充它(但是,如果用户选择这样做,我想保留其中显示的数据以再次显示)。

回答

9

QListWidget::takeItem

while(listwidget->count()>0) 
{ 
    listwidget->takeItem(0);//handle the item if you don't 
          //have a pointer to it elsewhere 
} 
+0

+1一旦你添加一个孩子在Qt的父母,父母拥有的孩子,会删除它。如果你不想删除子项,那么takeItem()会从父项中“取回”它。确保存储从takeItem()返回的指针,因为您现在负责将其删除(或稍后将其重新添加到列表中)。 – aldo 2012-03-07 04:25:25

相关问题