我一直在尝试获取GtkBuilder对象中所有GtkWidgets的"名称"。
我已经设法通过gtk_builder_get_objects()
从构建器对象中获取所有对象,并将它们存储在GSList中。
但是,当我在 gobjects(我将其转换为 GtkWidgets(上使用 gtk_widget_get_name()
时,我得到的是通用名称,例如"GtkWindow"和"GtkButton",而不是显示在 glade 中的"window1"或"button1"。
任何帮助将不胜感激,并使该程序员非常高兴。
我在做完全相同的事情。我id=
能够.glade
使用 gtk_buildable_get_name()
此处指定。
注意:在 2.20 之前,GtkBuilder 将构造小部件的 "name" 属性设置为 "id" 属性。在 GTK+ 2.20 或更高版本中,您必须使用 gtk_buildable_get_name()
而不是 gtk_widget_get_name()
来获取"id",或在 UI 定义中设置 "name" 属性。
为构建器设置的名称与GtkWidget
的名称不同。 GtkBuilder
维护一个内部哈希表,该表的名称以文件或字符串(从中添加了构建器(和关联对象的GtkBuilder UI definitions
设置。它用于在调用gtk_builder_get_object ()
时检索对象。利用GtkWidget
的"name"
属性。在GtkBuilder UI definitions
中设置"name"
属性以设置可以使用 gtk_widget_get_name()
检索的GtkWidget
的名称。
希望这有帮助!