如何从QTreeWidget删除项目?

问题描述 投票:0回答:1

我有4列QTreeWidget项目,最后一个是复选框。选中复选框后,必须删除该项目。Dialog是带有QTreeWidget的对话框窗口。

void Dialog::on_treeWidget_itemChanged(QTreeWidgetItem *item, int column)
{
  delete item;
}

为什么不起作用?QTreeWidget析构函数不是在这里调用的吗?以及如何正确删除项目?

qt destructor qtreewidget qtreewidgetitem
1个回答
0
投票

您的问题没有包含足够的信息,但是您的函数不会从QTreeWidget中删除项目。要删除项目,您应按以下步骤进行更改:

   {
    if(ui->treeWidget->currentItem()->parent())
        ui->treeWidget->currentItem()->parent()->removeChild(ui->treeWidget->currentItem());
    else
        ui->treeWidget->takeTopLevelItem(ui->treeWidget->currentIndex().row());
   }
© www.soinside.com 2019 - 2024. All rights reserved.