我有带有复选框的 QTreeWidget 项目列表,这些项目是具有很少顶级项目的子项目。我想删除处于选中状态的项目,如何迭代 qtreewidget 并删除这些项目?
问问题
1113 次
1 回答
1
简单的。没有编译,但希望你能明白。
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;
}
}
}
}
不确定我是否了解是否检查了顶级项目或是否检查了子项,所以我检查了(哈哈)两者。
于 2013-04-08T04:20:50.003 回答