GtkBuilder и "имена" - PullRequest
       49

GtkBuilder и "имена"

6 голосов
/ 25 ноября 2011

Я пытался получить «имена» всех GtkWidgets в объекте GtkBuilder.

Мне удалось получить все объекты из объекта-строителя через gtk_builder_get_objects() и сохранить их в GSList.

Однако, когда я использую gtk_widget_get_name() на объектах (которые я приводил к GtkWidgets), я получаю общие имена, такие как "GtkWindow" и "GtkButton" вместо "window1" или "button1", которыеотображается на поляне.

Любая помощь будет чрезвычайно оценена и сделает этого программиста очень счастливым.

Ответы [ 2 ]

5 голосов
/ 29 февраля 2012

Я делаю то же самое.Мне удалось получить строки id= из файла .glade, используя gtk_buildable_get_name(), как указано здесь .

Примечание : до 2.20 GtkBuilder былустановка свойства "name" созданных виджетов в атрибут "id".В GTK + 2.20 или новее вы должны использовать gtk_buildable_get_name() вместо gtk_widget_get_name(), чтобы получить «id», или установить свойство «name» в своем определении пользовательского интерфейса.

3 голосов
/ 25 ноября 2011

Имена, установленные для компоновщика, не совпадают с именами GtkWidget. GtkBuilder поддерживает внутреннюю хеш-таблицу с именем, заданным в GtkBuilder UI definitions, из файла или строки (из которой был добавлен компоновщик) и связанного объекта. Он используется для извлечения объектов при вызове gtk_builder_get_object (). Используйте "name" свойство GtkWidget. Установите свойство "name" в GtkBuilder UI definitions, чтобы задать имя GtkWidget, которое можно получить с помощью gtk_widget_get_name().
Надеюсь, это поможет!

...