摧毁GtkBuilder会破坏所有创建的小部件吗?

时间:2010-04-12 14:28:20

标签: gtk

有关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 个答案:

答案 0 :(得分:3)

来自documentation

  

GtkBuilder拥有对所有人的引用   它构造的对象和   如果丢弃这些引用   最终确定。这个定稿可能会导致   破坏非小部件对象   或未包含的小部件   一个顶层窗户。对于顶级   由建筑商建造的窗户,它   是用户的责任   调用gtk_widget_destroy()来摆脱   他们和他们所有的小部件   包含。

所以,不,GtkBuilder不会为你做这件事,你必须自己做。