0
我有QTreeWidget項目列表,帶有複選框,它們是頂級項目很少的子項目。我想刪除處於選中狀態的項目,我如何迭代qtreewidget並刪除這些項目?如何從QTreeWidget中刪除選中的項目?
我有QTreeWidget項目列表,帶有複選框,它們是頂級項目很少的子項目。我想刪除處於選中狀態的項目,我如何迭代qtreewidget並刪除這些項目?如何從QTreeWidget中刪除選中的項目?
簡單。沒有編譯,但希望你明白。
for(int topnum = 0; topnum < treeWidget->topLevelItemCount(); ++topnum)
{
if(Qt::Checked == treeWidget->topLevelItem(topnum)->checkState(0)) //assume one column
{
delete treeWidget->takeTopLevelItem(topnum);
--topnum; //decrement because you just removed it
} else
{
QTreeWidgetItem* topitem = treeWidget->topLevelItem(topnum);
for(int childnum = 0; childnum < topitem->childCount(); ++childnum)
{
if(Qt::Checked == topitem->child(childnum)->checkState())
{
delete topitem->takeChild(childnum);
--childnum;
}
}
}
}
不知道我明白如果頂級項目被選中或如果孩子被選中,所以我檢查(哈哈)。