我一直试图在一个GtkWidgets对象中获取所有GtkBuilder的“名称”。
我设法通过gtk_builder_get_objects()从构建器对象中获取所有对象,并将它们存储在GSList中。
但是,当我在gobjects上使用gtk_widget_get_name() (我将其转换为GtkWidgets)时,我会得到通用名称,如"GtkWindow“和"GtkButton”,而不是显示在glade中的"window1“或"button1”。
任何帮助都将是极其感谢的,并且会使这个程序员非常高兴。
发布于 2011-11-25 03:19:53
为构建器设置的名称与GtkWidget的名称不相同。GtkBuilder维护一个内部哈希表,该表在GtkBuilder UI definitions中从文件或字符串(从中添加了生成器)和关联对象中设置名称。它用于在调用gtk_builder_get_object ()时检索对象。使用"name"属性的GtkWidget。在"name"中设置GtkBuilder UI definitions属性,以设置可以使用gtk_widget_get_name()检索的GtkWidget名称。
希望这能有所帮助!
发布于 2012-02-29 18:17:26
我也在做同样的事。我能够使用id=作为指定的这里从.glade文件中获取gtk_buildable_get_name()字符串。
Note:在2.20之前,GtkBuilder将构造的小部件的"name“属性设置为"id”属性。在GTK+ 2.20或更高版本中,您必须使用gtk_buildable_get_name()而不是gtk_widget_get_name()来获取"id",或者在UI定义中设置"name“属性。
https://stackoverflow.com/questions/8263756
复制相似问题