Закрытие окна не убивает процесс, если вы не настроили обратный вызов, который завершает основной цикл Gtk + в событии удаления окна. Приложение выйдет только после того, как вы позвоните gtk_main_quit()
, что завершает основной цикл.
Не знаю, как работает привязка C ++ к GTK +, но в C это будет примерно так (взято с веб-сайта GNOME ):
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 ();
}