1
GTK +가 vs2010 C++ Windows 응용 프로그램에서 작동합니다. 빌더를 사용하여 glade에서 gui 템플릿을로드합니다.GTK + 앱 프로세스가 종료되지 않았습니다.
그러나 교차 아이콘을 사용하여 창을 닫거나 작업 표시 줄에서 마우스 오른쪽 버튼을 클릭하면 내 앱 프로세스가 종료되지 않습니다.
프로세스가 제대로 종료되도록하려면 어떻게해야합니까?
GTK +가 vs2010 C++ Windows 응용 프로그램에서 작동합니다. 빌더를 사용하여 glade에서 gui 템플릿을로드합니다.GTK + 앱 프로세스가 종료되지 않았습니다.
그러나 교차 아이콘을 사용하여 창을 닫거나 작업 표시 줄에서 마우스 오른쪽 버튼을 클릭하면 내 앱 프로세스가 종료되지 않습니다.
프로세스가 제대로 종료되도록하려면 어떻게해야합니까?
윈도우 삭제 이벤트에서 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