从 Glade 文件中获取所有对象

Get All Objects From Glade File

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

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

但是如您所见,我必须传递要导入的对象的列表。

有没有办法导入 .glade 文件中的所有内容?无需在此处指定名称的所有对象?

当您使用 gtk_builder_add_objects_from_file 时,您正在将特定对象合并到现有的 GtkBuilder 实例中,该实例随后将实例化这些相同的对象。使用此 function/method 仅当您需要来自 UI 定义文件的一组特定对象时才有用。

GtkBuilder 的正常使用是完全加载它,然后检索要处理的对象 gtk_builder_get_object。但是,如果您的目标是检索所有对象,则使用 gtk_builder_get_objects,这将 return 一个 GSList。使用此 function/method 假设您已经从文件或其他可能的来源加载了 UI 定义文件。

作为documented:

GSList *gtk_builder_get_objects (GtkBuilder *builder);

Gets all objects that have been constructed by builder . Note that this function does not increment the reference counts of the returned objects.

Returns

a newly-allocated GSList containing all the objects constructed by the GtkBuilder instance. It should be freed by g_slist_free().