gpt4 book ai didi

python - pygtk 从父节点按名称获取小部件

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:37 25 4
gpt4 key购买 nike

我有一个 gtk 小部件,我想知道在它的后代中是否还有另一个小部件。如果有,我想归还它,否则返回 None。这是一个简单的递归问题,但我似乎无法找到正确的方法来做到这一点。

在 glade xml 文件中,我有:

  <object class="GtkDialog" id="monkey">
[...]
<object class="GtkTreeView" id="ook">

调用 find(my_monkey_object, 'ook') 应该返回 GtkTreeView 对象。find() 应该类似于

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

我不确定我需要使用哪种 XXX() 方法。 get_name() 看起来很有希望,但返回对象的类名而不是它的“id”。我使用的版本是pygtk-2.24。

查看此 Python GTK+ widget name同一个问题的问题。

注意这个bug有点解释了这个问题:我想要来自 GTK 小部件树的构建器 ID。可悲的是,这似乎不可能得到...

最佳答案

根据 gtk C-api 文档,您可以获得这样的林间空地“id”名称:

name = gtk_buildable_get_name (GTK_BUILDABLE (widget))

对于pygtk,这和

是一样的
name = gtk.Buildable.get_name(widget)

关于python - pygtk 从父节点按名称获取小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com