您的位置:首页 > 编程语言 > Qt开发

Qt删除TreeWidget节点

2017-08-29 16:29 399 查看
void OpenLiveSyncMainWindow::deleteItem(){
QTreeWidgetItem* item=ui->pluginTreeWidget->currentItem();//获得当前节点

if(NULL==item)//没有选择节点
return;
QTreeWidgetItem* parent=item->parent();//获得当前节点的父节点
int index;//top节点的索引号
if(NULL==parent)//item就是top节点
{
QString fileName=item->text(0);//获得top节点的文本字符(即影像路径)
for (int i=0;i<imageList->size();i++)
{
if (fileName==imageList->at(i))
{
index=i;
break;
}
}
ui->pluginTreeWidget->takeTopLevelItem(index);//去除节点 Removes the top-level item at the given index in the tree and returns it
imageList->removeAt(index);//移除容器index处内容

//释放掉存放节点的内存空间
for (int i=0;i<imageList->size();i++)
{
QTreeWidgetItem* childItem=item->child(0);
delete childItem;
childItem=NULL;
}
delete item;
item=NULL;
}
else//parent才是top节点
{
QString fileName=parent->text(0);//获得top节点的文本字符(即影像路径)
for (int i=0;i<imageList->size();i++)
{
if (fileName==imageList->at(i))
{
index=i;
break;
}
}
ui->pluginTreeWidget->takeTopLevelItem(index);//去除节点 Removes the top-level item at the given index in the tree and returns it
imageList->removeAt(index);//移除容器index处内容

//释放掉存放节点的内存空间
for (int i=0;i<imageList->size();i++)
{
item=parent->child(0);
delete item;
item=NULL;
}
delete parent;
parent=NULL;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: