我一直在尝试获取GtkBuilder对象中所有GtkWidget的“名称”。

我设法通过gtk_builder_get_objects()从构建器对象中获取了所有对象,并将它们存储在GSList中。

但是,当我在gobjects(我强制转换为GtkWidgets)上使用gtk_widget_get_name()时,会得到通用名称,例如“GtkWindow”和“GtkButton”,而不是在林间空地上显示的“window1”或“button1”。

任何帮助都会受到的极大的的赞赏,并使该程序员非常的感到高兴。

最佳答案

为构建器设置的名称与GtkWidget的名称不同。 GtkBuilder维护一个内部哈希表,该哈希表具有在GtkBuilder UI definitions中设置的名称,该名称来自文件或字符串(从中添加了构建器)和关联的对象。当调用gtk_builder_get_object ()时,它用于检索对象。利用"name" GtkWidget 属性。在"name"中设置GtkBuilder UI definitions属性以设置可以使用GtkWidget检索的gtk_widget_get_name()的名称。
希望这可以帮助!

10-05 20:32