从Glade文件中获取所有对象

时间:2017-06-04 13:11:21

标签: python gtk gtk3 glade pygobject

我知道可以使用以下方法从glade文件导入特定对象:

builder.add_objects_from_file("example.glade", ("button1", "button2"))

但是正如你所看到的,我必须传递一个我要导入的对象列表。

有没有办法导入.glade文件中的所有内容?所有的对象,而不必在这里指定他们的名字?

1 个答案:

答案 0 :(得分:1)

当您使用gtk_builder_add_objects_from_file时,您正在将特定对象合并到现有的GtkBuilder实例,然后该实例将实例化这些相同的对象。只有在需要UI定义文件中的特定对象集时,才能使用此函数/方法。

正常使用GtkBuilder,将完全加载它,然后检索要处理gtk_builder_get_object的对象。但是,如果您的目标是检索所有对象,请使用gtk_builder_get_objects,这将返回GSList。使用此函数/方法假定您已经从文件或其他可能的源加载了UI定义文件。

作为documented

  

GSList *gtk_builder_get_objects (GtkBuilder *builder);

     

获取构建器构造的所有对象。注意   此函数不会增加返回的引用计数   对象。

     

<强>返回

     

一个新分配的GSList,包含由该构造的所有对象   GtkBuilder实例。它应该被g_slist_free()释放。