如何删除 QTreeWidget 的 currentItem? [关闭]
Posted
技术标签:
【中文标题】如何删除 QTreeWidget 的 currentItem? [关闭]【英文标题】:How do I delete the currentItem of a QTreeWidget? [closed] 【发布时间】:2021-07-29 14:07:00 【问题描述】:标题说明了一切。我找不到任何有用的东西。我该怎么做?
如何获取 currentItem 的索引或数据?
如何使用self.treeWidget.currentItem.().data()
?
【问题讨论】:
您好,欢迎来到 ***。请花点时间关注tour,阅读How to Ask 好问题,并考虑每个帖子只应该问一个问题(当你问3 个时)。也就是说,您是否研究过有关QTreeWidget 和QTreeWidgetItem 的文档? (在你问之前,是的,我确实知道那是 C++ 文档,但是 99% 的函数和 PyQt 中的函数完全一样)。 我确实检查了文档 然后呢?因为,如果你想从视图中删除一个项目,做一个简单的页面搜索关键字“删除”或“删除”我可以得到一些,但非常有趣的结果。而如果你想获取或设置某个项目上显示的文本,关键字“text”还有其他一些有趣的结果。抱歉,您的“检查文档”似乎没有那么彻底。 我可能没有用好的关键字搜索它。我的错。我检查了他们的功能。我仍然找不到删除 currentItem 的任何内容。不知道为什么。 这不是查看它是 qtreewidget btw 【参考方案1】:获取当前行索引:
self.treeWidget.indexFromItem(self.treeWidget.currentItem(), 0).row()
获取文本:
self.treeWidget.currentItem().text(column)
【讨论】:
添加到解决方案中,我所做的是创建了一个数组。每当我输入一个条目时,我都会将名称插入到数组中(应该是一个不会重复的值,这是我的应用程序中的时间)。当我想删除条目时,我会使用索引遍历数组,检查列数据是否与条目数据匹配。如果是这样,我做了 array.pop(index) 然后更新 qtreewidget。我执行更新功能的方式是清除 qtreewidget 并在插入项目时循环遍历数组。 你也可以使用 self.treeWidget.takeTopLevelItem(self.treeWidget.indexFromItem(self.treeWidget.currentItem(), 0).row()) 但我想从我的反正数组以上是关于如何删除 QTreeWidget 的 currentItem? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 setDropAction 时,QTreeWidget 丢弃的项目被删除
PyQt5如何实现对QTreeWidget下所有Item的遍历
Qt QTreeWidget节点的添加+双击响应+删除详解(转)
QT5 QtreeWidget 实现点击item事件以及右键菜单删除item 和 重命名item