从QTreeWidget中删除行(qt编程)

时间:2009-01-07 19:03:00

标签: qt clear kde qtreewidget

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

QTreeWidget内容已设置为:

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

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

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

但我的应用程序崩溃了! 建议?

2 个答案:

答案 0 :(得分:3)

您的问题是调用packList->clear()会删除树中包含的树窗口小部件项。 (请参阅有关QTreeWidget::clear()的文档,其中包含有关在删除之前从树中删除项目的说明。)您需要找到一种方法来删除项目,或者不要单独维护它们的列表。树。

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

答案 1 :(得分:1)

this documentation所说的内容,您应该能够:

packList->takeTopLevelItem(index);

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