6

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

我已经设法通过 builder 对象获取所有对象gtk_builder_get_objects()并将它们存储在 GSList 中。

但是,当我gtk_widget_get_name()在 gobjects(我将其转换为 GtkWidgets)上使用时,我得到了诸如“GtkWindow”和“GtkButton”之类的通用名称,而不是在林间空地中显示的“window1”或“button1”。

任何帮助将不胜感激,并使该程序员非常高兴。

4

2 回答 2

5

我正在做同样的事情。我能够使用此处指定的文件从文件 中获取id=字符串。.gladegtk_buildable_get_name()

注意:在 2.20 之前,GtkBuilder 将构建的小部件的“名称”属性设置为“id”属性。在 GTK+ 2.20 或更高版本中,您必须使用gtk_buildable_get_name()而不是gtk_widget_get_name()获取“id”,或在 UI 定义中设置“name”属性。

于 2012-02-29T18:17:26.357 回答
4

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

于 2011-11-25T03:19:53.377 回答