12

選択したものを削除する簡単な方法を見つけるのはイライラするほど難しいと感じていますQTreeWidgetItem

私のパッチワークの方法では、ツリーの現在の選択を次のように設定しますcurrent

if current.parent() is not None:
   current.parent().removeChild(current)
else:
   self.viewer.takeTopLevelItem(self.viewer.indexOfTopLevelItem(current))

ひどいことではありませんが、まっすぐにアイテムを削除するコマンドはありませんか?

4

2 に答える 2

15

QTreeWidgetクラスにはinvisibleRootItem()、ややきちんとしたアプローチを可能にする関数があります。

root = tree.invisibleRootItem()
for item in tree.selectedItems():
    (item.parent() or root).removeChild(item)
于 2012-08-26T23:13:15.627 に答える
10

PyQt4 は sip を使用して Qt クラスの python バインディングを生成するため、sip python APIを使用して C++ オブジェクトを明示的に削除できます。

import sip
...
sip.delete(current)

PySide のバインディング ジェネレータである shiboken にも同様のモジュールがあります。

于 2012-08-27T01:36:54.703 に答える