Python GTK +小部件名称

时间:2010-08-15 22:25:15

标签: python gtk

如何获取小部件的“名称”?

当我使用Glade定义GUI时,我可以“命名”窗口的小部件,但是当我有小部件对象实例时如何恢复该属性?

我已尝试get_property()get_name()$widget.name无济于事。

更新:我使用的是GtkBuilder文件格式(即XML格式)。

解决方法:我使用过的修补程序:在从set_property("name", name)获取后,在窗口小部件上使用GtkBuilder方法。

3 个答案:

答案 0 :(得分:15)

我使用的class-method表单对我有用:

gtk.Buildable.get_name(widget)

参考

PyGtk:gtk.Buildable.get_name

Gtk3:Gtk.Buildable.get_name

引自gtk2 GtkBuilder

  

在GTK + 2.20之前,gtk.Builder设置了“name”属性   构造小部件到“id”属性。在GTK + 2.20或更新版本中,您   必须使用gtk.Buildable.get_name()而不是gtk.Widget.get_name()   获取“id”,或在UI定义中设置“name”属性。


另外

有一些报告错误,其中GtkBuilder将窗口小部件名称设置为构建器ID,或者根本不设置它。请参阅UbuntuGNOME错误。我不知道为什么错误说它设置ID而不是名称,因为我只看到未设置的名称。

答案 1 :(得分:2)

self.builder.get_name(widget)

其中widget是widget对象。使用Ubuntu打包的快速开发环境

答案 2 :(得分:0)

鉴于小部件ww.get_name()会返回什么?如果None,则表示窗口小部件没有name属性。也许你想要gtk.glade.get_widget_name(w)代替? (我不确定窗口小部件的name属性及其创建的Glade XML中的名称是否相同......)。