我知道可以使用以下方法从glade文件导入特定对象:
builder.add_objects_from_file("example.glade", ("button1", "button2"))
但是正如你所看到的,我必须传递一个我要导入的对象列表。
有没有办法导入.glade文件中的所有内容?所有的对象,而不必在这里指定他们的名字?
答案 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()释放。