2

从 QTreeWidget 中删除一行(QTreeWidgetItem)的最佳方法是什么?

QTreeWidget 内容由以下人员设置:

myQTreeWidget->insertTopLevelItems(0, items); // items = QList<QTreeWidgetItem*>

然后我从我的 QList“项目”中删除一个项目,我尝试清除/重置 QTreeWidget

packList->clear();    
packList->insertTopLevelItems(0, items);

但是我的应用程序在这里崩溃了!建议?

4

2 回答 2

3

您的问题是调用packList->clear()会删除树包含的树小部件项目。(请参阅有关 的文档QTreeWidget::clear(),其中包括有关在删除之前从树中删除的项目的注释。)您要么需要找到删除项目的方法,要么不维护与树分开的列表。

在一个稍微相关的说明中,如果您尝试跟踪其他数据以及树,我建议您尝试使用模型范例。在不平凡的情况下,通常值得我花时间转换为该技术,而不是使用小部件/项目。

于 2009-01-07T19:20:04.030 回答
1

根据本文档的说明,您应该能够做到这一点:

packList->takeTopLevelItem(index);

哪个返回删除并返回提供的索引处的项目。

于 2009-01-07T19:19:39.473 回答