Уничтожает ли GtkBuilder все созданные виджеты? - PullRequest
2 голосов
/ 12 апреля 2010

Вопрос по GtkBuilder. Когда мы отменяем указатель на сборщик, он уничтожает все экраны / виджеты, созданные создателем?

if( builder_ptr )
    g_object_unref(G_OBJECT(builder_ptr));

Предположим, что мы создали один экран с использованием Glade / XML с несколькими 2-3 окнами top_level в нем

gtk_builder_add_from_file(builder_ptr, "Test.glade", &error )

и сгенерированный указатель GtkBuilder (как указано выше), поэтому после удаления этого указателя он удаляет созданные Windows или нам нужно вручную удалить эти окна?

Спасибо
PP.

1 Ответ

3 голосов
/ 12 апреля 2010

Из документации :

GtkBuilder содержит ссылку на все объекты, которые он построил и отбрасывает эти ссылки, когда это завершена. Эта доработка может вызвать уничтожение объектов не виджетов или виджеты, которые не содержатся в окно верхнего уровня. Для верхнего уровня окна, построенные застройщиком, это Пользователь несет ответственность за вызовите gtk_widget_destroy () чтобы избавиться из них и всех виджетов они содержат.

Итак, нет, GtkBuilder не делает это для вас, вы должны сделать это сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...