1
GTK +はvs2010のC++ウィンドウアプリケーションで動作しています。 ビルダーを使用してgladeからguiテンプレートをロードします。GTK + Appプロセスが終了しない
ただし、十字アイコンを使用してウィンドウを閉じるか、タスクバーで右クリックして閉じると、 私のアプリケーションのプロセスは強制終了されません。
どのようにプロセスがうまく終了しないようにしますか?
GTK +はvs2010のC++ウィンドウアプリケーションで動作しています。 ビルダーを使用してgladeからguiテンプレートをロードします。GTK + Appプロセスが終了しない
ただし、十字アイコンを使用してウィンドウを閉じるか、タスクバーで右クリックして閉じると、 私のアプリケーションのプロセスは強制終了されません。
どのようにプロセスがうまく終了しないようにしますか?
ウィンドウを閉じると、ウィンドウの削除イベントでGtk +メインループを終了するコールバックを設定しない限り、プロセスは終了しません。アプリケーションは、メインループを終了するgtk_main_quit()
に電話をした後で終了します。
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