Python QtreeWidget : 리턴 트리 계층 구조
문제
위젯 트리의 계층 적보기를 얻으려고 노력했습니다.
코드는 잘 작동하며 다음과 같은 멋진 나무를 생성합니다.
ROOT(Animal):
|
|
|___Not extinct:
. | (red)
. |_____BIRD--------------(blue)
. | (green)
|
| (red)
|_____Mammal------------(blue)
| (green)
|
| (red)
|_____Reptile-----------(blue)
(green)
트리 계층 구조가있는 코드는 다음과 같습니다.
def myTreeWDG(self):
....
"""define tree"""
self.obj_animalTreeWDG = QtGui.QTreeWidget(self.obj_viewGroupBox)
self.obj_animalTreeWDG.setGeometry(QtCore.QRect(10, 20, 191, 131))
self.obj_animalTreeWDG.setObjectName("obj_animalTreeWDG")
"""ROOT: animal"""
obj_parent1 = QtGui.QTreeWidgetItem(self.obj_animalTreeWDG)
"""not extinct:"""
obj_childView1_1 = QtGui.QTreeWidgetItem()
obj_parent1.addChild(obj_childView1_1)
"""bird"""
obj_childView1_1_1 = QtGui.QTreeWidgetItem()
obj_childView1_1.addChild(obj_childView1_1_1)
"""3: red, blue, green"""
total=3
self.insert_treeLeaves(total,obj_childView1_1_1)
"""mamal"""
obj_childView1_1_2 = QtGui.QTreeWidgetItem()
obj_childView1_1.addChild(obj_childView1_1_2)
"""3: red, blue, green"""
total=3
self.insert_treeLeaves(total,obj_childView1_1_2)
"""reptile"""
obj_childView1_1_3 = QtGui.QTreeWidgetItem()
obj_childView1_1.addChild(obj_childView1_1_3)
"""3: red, blue, green"""
total=3
self.insert_treeLeaves(total,obj_childView1_1_3)
"""connect event"""
QtCore.QObject.connect(self.obj_animalTreeWDG, QtCore.SIGNAL('itemClicked(QTreeWidgetItem*, int)'), self.obj_treeViewInput)
다음은 잎을 나무에 추가하는 코드입니다.
def insert_treeLeaves(self,total,tree_directParent):
for i in range(0,total):
"""leaves with color name"""
tree_child_leaf = QtGui.QTreeWidgetItem()
tree_directParent.addChild(tree_child_leaf)
그런 다음 나무를 클릭 할 때마다 알려주는 기능이 있으며 클릭 한 위치가 있습니다.
def obj_treeViewInput(self,item,col):
print "obj _Qtree : pressed"
print "name:" item.text(col)
문제는 터치 된 잎 (빨간색)이 새나 다른 아버지에 속하면 어떻게 얻을 수 있다는 것입니다. 즉, 다음 출력을 얻는 방법은 다음 마우스를 클릭하십시오 : 동물 - 멸종되지 않음 - 포유류 - (빨간색).
모든 의견과 제안은 높이 평가됩니다.
해결책
이 항목의 경로를 인쇄 할 수있는 각 QtreeWidgetItem의 방법은 어떻습니까?
이 방법에서는 재귀를 사용하여 항목의 부모의 완전한 경로를 얻을 수 있으며 ( "qtreewidgetItem * parent () 메소드가이를 수행 할 수 있습니다). 현재 항목의 텍스트를 부모의 경로에 추가합니다! 항목에 부모가 없을 때 재귀를 중지합니다.
나는 당신의 질문을 이해하기를 바랍니다. 이것은 당신에게 조금 도움이됩니다!
자신의 qtreewidgetitem 클래스가 있습니까? 특정 역할을 사용하여이를 달성 할 수 있습니다 ...
제휴하지 않습니다 StackOverflow