Delete QTreeWidgetItem in PyQt?
10,948
Solution 1
The QTreeWidget
class has an invisibleRootItem()
function which allows for a somewhat neater approach:
root = tree.invisibleRootItem()
for item in tree.selectedItems():
(item.parent() or root).removeChild(item)
Solution 2
PyQt4 uses sip to generate the python bindings for Qt classes, so you can delete the C++ object explicitly through the sip python API:
import sip
...
sip.delete(current)
The binding generator for PySide, shiboken, has a similar module.
Author by
RodericDay
Updated on June 04, 2022Comments
-
RodericDay about 2 years
I'm finding it frustratingly hard to find a simple way to delete my selected
QTreeWidgetItem
.My patchwork method involves setting the tree's current selection to
current
and then:if current.parent() is not None: current.parent().removeChild(current) else: self.viewer.takeTopLevelItem(self.viewer.indexOfTopLevelItem(current))
It's not horrible, but isn't there a command that straight up just removes the item?