我有一个用 C/gtk+(v 2.x) 编写的 GUI 应用程序。如果我单击主窗口的菜单项,将调用以下函数并显示一个对话框。
dialog_ui * create_dialog ()
{
dlg = malloc (sizeof(dialog_ui));
dlg->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
...
gtk_widget_show_all (dlg->window);
return dlg;
}
这是dialog_ui
结构
typedef struct _dialog_ui
{
GtkWidget * window;
...
} dialog_ui;
这是dlg
头文件中的变量。
dialog_ui * dlg;
我的问题是,我malloc
在create_dialog
函数中调用。但我不知道我可以从哪里调用free
,因为 GUI 是事件驱动的。我想过destroy-event
,但我想知道这样做的正确方法。有任何想法吗.. ?