Python GTK+;小部件名称
如何获取小部件的“名称” 当我使用Glade定义GUI时,我可以“命名”窗口的小部件,但是当我有一个小部件对象实例时,如何恢复该属性 我尝试了Python GTK+;小部件名称,python,gtk,Python,Gtk,如何获取小部件的“名称” 当我使用Glade定义GUI时,我可以“命名”窗口的小部件,但是当我有一个小部件对象实例时,如何恢复该属性 我尝试了get_property(),get_name()和$widget.name,但都没有成功 更新:我正在使用GtkBuilder文件格式(即XML格式) 解析:我使用的一个修复方法:在从GtkBuilder获取小部件后,在小部件上使用set_属性(“name”,name)方法,给定小部件w,w.get_name()返回什么?如果None,则表示小部件没有名
get_property()
,get_name()
和$widget.name
,但都没有成功
更新:我正在使用GtkBuilder文件格式(即XML格式)
解析:我使用的一个修复方法:在从
GtkBuilder
获取小部件后,在小部件上使用set_属性(“name”,name)
方法,给定小部件w
,w.get_name()
返回什么?如果None
,则表示小部件没有名称
属性。也许你想要gtk.glade.get\u widget\u name(w)
?(我不确定小部件的name
属性和创建它的Glade XML中的名称是否相同…。我使用类方法表单,它对我有效:
gtk.Buildable.get_name(widget)
工具书类 PyGtk: Gtk3: 引自: 在GTK+2.20之前,GTK.Builder正在设置 将小部件构造为“id”属性。在GTK+2.20或更新版本中,您可以 必须使用gtk.Buildable.get_name()而不是gtk.Widget.get_name() 获取“id”,或在UI定义中设置“name”属性
进一步的 GtkBuilder将widget name设置为builder ID,或者根本没有设置,这是一些报告的bug。请参阅和bug。我不知道为什么bug说它设置了ID而不是名称,因为我只见过没有设置名称
self.builder.get_name(widget)
其中widget是widget对象。使用Ubuntu打包的快速开发环境工作时返回“无”,以及
gtk.glade.get_widget_name(w)
@jdupont,但您确定w
是从glade XML文件中的命名条目构建的?那我就没主意了…:-(你用的是什么格式?Glade还是GTKBuilder?这正是我这边一直在发生的事情!谢谢提醒!恐怕这个答案不完整且有误导性,什么是self.builder
变量?gtk.builder
(nor)没有get\u name
方法。