2012-08-26 4 views
9

내가 선택한 QTreeWidgetItem을 삭제하는 간단한 방법을 찾으려면 좌절감을 느낍니다.PyQt에서 QTreeWidgetItem을 삭제 하시겠습니까?

내 패치 워크 방법은 다음 current과에 트리의 현재 선택 설정이 포함됩니다

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

그것은 끔찍한 아니지만, 똑바로 바로 항목을 제거하는 명령이없는? 당신이 the sip python API을 통해 명시 적으로 반대 ++은 C를 삭제할 수 있도록

root = tree.invisibleRootItem() 
for item in tree.selectedItems(): 
    (item.parent() or root).removeChild(item) 
+0

나는 당신이 올바른 길이라고 생각합니다. C++에서는 단순히 항목을 삭제할 수 있으므로 소멸자를 호출하면 위젯에서 해당 항목이 제거됩니다. 하지만 파이썬에서 그렇게 할 수있는 직접적인 방법은 없다고 생각합니다. – Avaris

답변

4

PyQt4는, Qt는 클래스의 파이썬 바인딩을 생성하기 위해 모금을 사용합니다 :

+0

좋은 +1. 나는 그것을 몰랐다. – Avaris

+0

앞으로 이것을 사용할 것이지만 나는 다른 대답을했다. 그래도 고마워! – RodericDay