在文档中,我看到可以使用takeTopLevelItem()
. 但是,我需要删除不是顶级的项目。我完全不知道如何做到这一点,所以我在这里寻求帮助。我所做的任何谷歌搜索都没有正确的结果,而且 PySide 文档完全没有帮助。我怀疑有一种简单的方法可以做到这一点,而且我想多了,但我不知道如何找到它。
问问题
902 次
1 回答
0
好的,在考虑了 3 天之后,我意识到答案是,正如我所怀疑的那样,相当简单(但可能有点令人费解)。
右键单击 QTreeWidget 时,我试图删除该项目(只是一点背景,以便您理解我的代码)。
tree = QTreeWidget()
def delItem(e):
if e.reason() == QContextMenuEvent.Mouse:
itemClicked = tree.itemAt(e.pos())
for topItem in range(0,tree.topLevelItemCount()):
topItem = tree.topLevelItem(topItem)
if topItem.isSelected():
tree.takeTopLevelItem(tree.indexOfTopLevelItem(topItem))
else:
def checkChildren(item):
if item.childCount() >= 0:
for childItem in range(0,item.childCount()):
childItem = item.child(childItem)
if childItem.isSelected():
item.removeChild(childItem)
else:
childItem.checkChildren()
checkChildren(topItem)
tree.contextMenuEvent = delItem
于 2013-06-11T21:46:13.643 回答