如何获取小部件的“名称”?
当我使用Glade定义GUI时,我可以“命名”窗口的小部件,但是当我有小部件对象实例时如何恢复该属性?
我已尝试get_property()
,get_name()
和$widget.name
无济于事。
更新:我使用的是GtkBuilder文件格式(即XML格式)。
解决方法:我使用过的修补程序:在从set_property("name", name)
获取后,在窗口小部件上使用GtkBuilder
方法。
答案 0 :(得分:15)
我使用的class-method表单对我有用:
gtk.Buildable.get_name(widget)
PyGtk:gtk.Buildable.get_name
在GTK + 2.20之前,gtk.Builder设置了“name”属性 构造小部件到“id”属性。在GTK + 2.20或更新版本中,您 必须使用gtk.Buildable.get_name()而不是gtk.Widget.get_name() 获取“id”,或在UI定义中设置“name”属性。
有一些报告错误,其中GtkBuilder将窗口小部件名称设置为构建器ID,或者根本不设置它。请参阅Ubuntu和GNOME错误。我不知道为什么错误说它设置ID而不是名称,因为我只看到未设置的名称。
答案 1 :(得分:2)
self.builder.get_name(widget)
其中widget是widget对象。使用Ubuntu打包的快速开发环境
答案 2 :(得分:0)
鉴于小部件w
,w.get_name()
会返回什么?如果None
,则表示窗口小部件没有name
属性。也许你想要gtk.glade.get_widget_name(w)
代替? (我不确定窗口小部件的name
属性及其创建的Glade XML中的名称是否相同......)。