销毁GtkBuilder是否会销毁所有创建的小部件?

销毁GtkBuilder是否会销毁所有创建的小部件?,gtk,Gtk,关于GtkBuilder的问题。 当我们释放生成器指针时,它是否会销毁生成器创建的所有屏幕/小部件 if( builder_ptr ) g_object_unref(G_OBJECT(builder_ptr)); 假设我们使用Glade/XML创建了一个屏幕,其中包含2-3个顶级窗口 gtk_builder_add_from_file(builder_ptr, "Test.glade", &error ) 和生成的GtkBuilder指针(如上所述),所以删除此指针后,它会删

关于GtkBuilder的问题。 当我们释放生成器指针时,它是否会销毁生成器创建的所有屏幕/小部件

if( builder_ptr )
    g_object_unref(G_OBJECT(builder_ptr));
假设我们使用Glade/XML创建了一个屏幕,其中包含2-3个顶级窗口

gtk_builder_add_from_file(builder_ptr, "Test.glade", &error )
和生成的GtkBuilder指针(如上所述),所以删除此指针后,它会删除已创建的窗口还是需要手动删除这些窗口

谢谢,
PP.

来自:

GtkBuilder包含对所有 已构造的对象,以及 当引用被删除时,删除这些引用 最后定稿。此终结可能会导致 非widget对象的销毁 或不包含在中的小部件 顶层窗户。顶级 由建设者构建的窗口,它 用户是否有责任 调用gtk_widget_destroy()以摆脱 它们和它们所使用的所有小部件 包含


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

谢谢,所以我必须调用
gtk\u widget\u destroy()
对每个由builder构建的顶级窗口,这就是你所说的?@PP:是的,这就是文档所说的。