• 14067阅读
  • 5回复

QTreeWidget中如何删除一项QTreeWidgetItem,急!!! [复制链接]

上一主题 下一主题
离线supporter
 
只看楼主 正序阅读 楼主  发表于: 2009-07-06
我希望右键点击某个树节点,它及其孩子都删除。我遇到两个问题:
1)如何获取选中的节点。
2)如何删除某个节点,removeChild不管用呀,removeItemWidget怎么用
离线supporter
只看该作者 5楼 发表于: 2009-07-07
非常感谢3楼的朋友,也可以直接用delete,
我还有一个问题,我们通过itemAt和currentItem获得的QTreeWidgetItem,一定是同一个吗??????????
离线csm55

只看该作者 4楼 发表于: 2009-07-06
楼上正解
离线feiying888

只看该作者 3楼 发表于: 2009-07-06
我也遇到过同样的问题。http://www.qtcn.org/bbs/read.php?tid=19817

我是这样解决的:

如果删除的对象是TopLevelItem,就用QTreeWidgetItem * QTreeWidget::takeTopLevelItem ( int index )
如果是childItem,需要先用parent(),获取其父Item, 再用void QTreeWidgetItem::removeChild ( QTreeWidgetItem * child )就可以删除

以上仅供参考
离线supporter
只看该作者 2楼 发表于: 2009-07-06
QList<QTreeWidgetItem*> list = ui->channelsTreeWidget->selectedItems();
QTreeWidgetItem* curItem = list.takeFirst();
int count = curItem->childCount();
for( int i = 0; i < count; i++)
{
     curItem->removeChild(curItem->child(i));
}
我改成这样也看不到任何效果,我不知道如何获取我右键点击的节点,有知道的吗,谢谢帮助!!
离线supporter
只看该作者 1楼 发表于: 2009-07-06
   QTreeWidgetItem* curItem = ui->channelsTreeWidget->topLevelItem(0);
    int count = 0;
    count = curItem->childCount();
    for( int i = 0; i < count; i++)
    {
        curItem->removeChild(curItem->child(i));
    }
这段代码看不到任何效果,我调试时也看不到count的值????????????
快速回复
限100 字节
 
上一个 下一个