我是否需要释放从gtk_builder_get_object返回的对象?

时间:2012-08-12 01:02:24

标签: gtk

我是GTK的新手,其所有术语和文档都可能更好。 我有以下控件需要在点击按钮时清除。

  • GTKTextView - 1
  • GTKEntry - 3
  • GTKLabel - 16

所以我想我会遍历一个对象名称表,调用gtk_builder_get_object并保存返回的对象(这些就像是windows中的句柄?)。我完成后是否必须释放它们,或者当我的窗户关闭时它们是否会被摧毁?

1 个答案:

答案 0 :(得分:1)

我不太了解你的问题,你想破坏小部件吗?如果是这样,您应该使用gtk_widget_destroy ()

  

当一个小部件被销毁时,它将破坏它所持有的任何引用   其他对象。如果窗口小部件位于容器内,则窗口小部件将是   从容器中取出。如果小部件是顶级的(从中派生出来)   GtkWindow),它将从顶级列表中删除,并且   参考GTK +持有它将被删除。

如果您销毁一个窗口,它上面的小部件也将被销毁。如果要销毁窗口中的某些窗口小部件,请销毁其父窗口(例如,打包它们的框或表)。否则,你将不得不逐一销毁它们。

  

在大多数情况下,只有顶级窗口小部件(窗口)需要显式销毁,因为当你销毁一个顶层时,它的子节点也会被销毁。

在gtk中,如果这是你的意思,你就不会释放指向小部件的指针,Gtk函数会适当地为你做这些。

如果我能得到更多帮助,请告诉我......