0

我有一个 GTK 窗口,上面有一些小部件。那里有一堆扩展器,它们都有相同的activate信号处理程序。在这个处理程序中,我想获取小部件对象的名称。

def exItem_activated (self, widget, data=None):
    for i in range (0, 15):
        self.builder.get_object ('exItem' + (str)(i + 1)).set_expanded (False)
    widget.expanded = True

    print widget.name

widget.name但是,不起作用;AttributeError: 'Expander' object has no attribute 'name'.
所以基本上,当expander2被点击时,我想得到“expander2”作为一个字符串。单击expander14 时,我想将“expander14”作为字符串获取。有没有办法做到这一点?

如果这不能(很容易)完成,那么如果我可以获得一些其他属性,我可以通过这些属性来判断单击了哪个小部件,那也是可以接受的。

4

1 回答 1

1

据我了解,调用了相应的方法get_name(),例如:

print expander.get_name()

编辑:对于带有 gtk 2.20+ 的基于林间空地的 UI,gtk.Buildable.get_name()应该使用该方法,而不是gtk.Widget.get_name()因为小部件名称存储在idUI 定义的属性中。

于 2012-06-25T15:05:55.690 回答