当我从容器中移除小部件时,我需要澄清 GTK 的内存管理。
/* Create a label widget with a floating reference. */
GtkWidget *lbl_text = gtk_label_new ("Text");
/* Create a grid container widget. */
GtkWidget *grid_text = gtk_grid_new ();
/* Add the label to the grid, which replaces the floating reference with a standard reference. */
gtk_grid_attach ( GTK_GRID(grid_text), lbl_text, 0, 0, 3, 1);
当我销毁网格时grid_text
,GTK 将标签上的引用计数减为零,并释放标签的内存。一切顺利。
如果我从网格中删除标签,标签的引用计数会发生什么变化?
gtk_grid_remove (GTK_GRID(grid_text), lbl_text);
现在它lbl_text
的引用计数是否为零并且被销毁了,或者它是否有一个浮动引用,我需要使用 手动销毁它g_object_unref()
?