Закрытие окна не убивает процесс, если вы не настроили обратный вызов, который завершает основной цикл Gtk + в событии удаления окна. Приложение выйдет только после того, как вы вызовете gtk_main_quit()
, который завершает mainloop.
Не знаю, как C++ привязки к GTK + работает, но в C это будет что-то вроде этого (взято из GNOME website):
int main(int argc,
char *argv[])
{
GtkWidget * window;
gtk_init (&argc,&argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete-event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (window, "destroy",
G_CALLBACK (destroy), NULL);
gtk_widget_show (window);
gtk_main();
}
А потом обратные вызовы:
static gboolean delete_event(GtkWidget *widget,
GdkEvent *event,
gpointer data)
{
g_print ("delete event occurred\n");
return FALSE;
}
static void destroy(GtkWidget *widget,
gpointer data)
{
gtk_main_quit();
}
Ваш удивительное спасибо! – Kachinsky