我有一个带有一些小部件的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'
。
所以基本上,当点击expandder2时,我想把“expandder2”作为一个字符串。单击expandder14时,我想将“expandder14”作为字符串。有没有办法做到这一点?
如果这不能(轻松)完成,如果我可以获得一些其他属性来判断哪个小部件被点击,这也是可以接受的。
答案 0 :(得分:1)
据我所知,相应的方法称为get_name()
,例如:
print expander.get_name()
编辑:应使用gtk.Buildable.get_name()
方法而不是gtk.Widget.get_name()
,因为窗口小部件名称存储在id
属性中UI定义。