저는 gtk 위젯을 가지고 있는데, 그 하위 노드 내에 다른 위젯이 있는지 알아보고 싶습니다. 있을 경우 반환하고 그렇지 않으면 반환하지 않습니다. 이것은 단순한 재귀적인 문제이지만 올바른 방법을 사용하지 못하는 것 같습니다. 숲 사이의 빈터 XML 파일에 pygtk 상위 노드에서 이름으로 위젯을 가져옵니다.
, 나는이 : 이<object class="GtkDialog" id="monkey">
[...]
<object class="GtkTreeView" id="ook">
및 find(my_monkey_object, 'ook')
에 대한 호출이 GtkTreeView 개체를 반환해야합니다. find()
내가 XXX() 메소드는 내가 사용해야하는 확실하지 않다
def find (node, id):
if node.XXX() == id: return node
for child in node.get_children():
ret = find(child, id)
if ret: return ret
return None
에 가깝다 뭔가해야합니다. get_name()
는 희망을 갖고 보였지만 "id"가 아닌 객체의 클래스 이름을 반환합니다. 내가 사용하는 버전은 pygtk-2.24입니다.
같은 문제에 대해 Python GTK+ widget name 질문을 참조하십시오.
이 bug 종류의 문제에 대해 설명합니다. 빌더 ID를 GTK 위젯 트리에서 원합니다. 슬프게도, 이것은 불가능한 것 같습니다 ...
:
그것은처럼 보이는 pygi를 사용하는 적응. – ergosys'gtk.Buildable (widget) .get_name()'이 주석마다 작동하지 않습니다 19 버그? – ergosys