我一直在尝试获取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()
的名称。
希望这可以帮助!