我尝试为 QTreeWidget 构建实时搜索,这意味着我有一个 QLineEdit,当我输入时,我将过滤 QTreeWidget 中显示的结果。
目前我用 QTreeWidget.findItems() 得到“仍然显示的项目”
foundItems = mainForm.ui.treeShips.findItems(text,QtCore.Qt.MatchContains)
后来我清除了QTreeWidget(mainForm.ui.treeShips)
mainForm.ui.treeShips.clear()
然后我想添加“仍然显示的项目”
mainForm.ui.treeShips.addTopLevelItems(foundItems)
但随后程序因“基础 C/C++ 对象已被删除”错误而崩溃
我的第一个想法是,通过清除 treeShips,foundItems 的内容也被清除了导致 foundItems 的对象( print(foundItems) )和 treeShips 的对象具有相同的地址,并且当程序想要使用此列表时,它碰撞。
有人知道如何解决它,或者有更好的想法来应用这样的“搜索过滤器”吗?
(我希望我能正确描述我的问题:))
谢谢和最好的问候