Rod*_*Day 11 python pyqt qtreewidget
我发现找到一种删除我所选择的简单方法令人沮丧QTreeWidgetItem
.
我的拼凑方法涉及将树的当前选择设置为current
,然后:
if current.parent() is not None:
current.parent().removeChild(current)
else:
self.viewer.takeTopLevelItem(self.viewer.indexOfTopLevelItem(current))
Run Code Online (Sandbox Code Playgroud)
这并不可怕,但是没有一个命令可以直接删除该项目吗?
ekh*_*oro 14
该QTreeWidget
班有一个invisibleRootItem()
功能,它允许有点整洁的办法:
root = tree.invisibleRootItem()
for item in tree.selectedItems():
(item.parent() or root).removeChild(item)
Run Code Online (Sandbox Code Playgroud)
PyQt4使用sip为Qt类生成python绑定,因此您可以通过sip python API显式删除C++对象:
import sip
...
sip.delete(current)
Run Code Online (Sandbox Code Playgroud)
用于PySide的绑定生成器shiboken具有类似的模块.