gpt4 book ai didi

c - GTK 中的免费对象/小部件?

转载 作者:太空狗 更新时间:2023-10-29 14:59:57 25 4
gpt4 key购买 nike

我的 GTK 应用程序中有一个包框,我每隔一段时间就会用一个全新的条目替换它(至少现在是这样,因为我很赶时间)。

因为我要用一个新实例替换它,我是否需要明确地从内存中释放旧包装盒内容,或者 GTK 中是否有一些垃圾收集?

如果我确实需要明确需要释放对象,是否有一个命令会递归地转到该树中的所有对象(比如它会清除我的主包装盒内的盒子容器中的按钮)?另外,连接到对象的信号和处理程序如何?

我正在使用 C/GTK-2.0(gcc v4.4.3 和 GTK 2.20.0)。

最佳答案

GObject 是引用计数的。当您将小部件打包到容器中时,容器会接管所有权。

当您执行 gtk_container_remove() 时,容器持有的引用将被删除,这通常会导致小部件被销毁。

所以不,您不需要显式销毁它,只需将它从容器中移除就足够了。

documentation对于 gtk_container_remove() API 还表示,直接在 child 上调用 gtk_widget_destroy() 会更有效,所以如果这就是您已经在做的事情很好。

关于c - GTK 中的免费对象/小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com