我有一个GTK窗口,上面有一些小部件,上面有一堆扩展器,它们都有相同的activate
信号处理程序。在这个处理程序中,我想得到widget对象的名称。在
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作为一个字符串,有什么方法可以做到吗?在
如果这不能(容易地)完成,如果我能得到一些其他属性,通过这些属性我可以知道哪个小部件被点击了,这也是可以接受的。在
据我所知,相应的方法称为
get_name()
,例如:编辑:对于使用gtk2.20+的基于glade的UI,应该使用},因为小部件名称存储在UI定义的
gtk.Buildable.get_name()
方法,而不是{id
属性中。在相关问题 更多 >
编程相关推荐