私はgtkウィジェットを持っています。その子孫の中に別のウィジェットがあるかどうかを調べたいと思います。 1つがある場合はそれを返したい。これは単純な再帰的な問題ですが、私はそれを行う正しい方法を得ることができません。空き地の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