2016-10-22 105 views
1

我試圖用gtk製作簡單的「消息框」對話框。它的工作原理,但我點擊按鈕時,對話框不會關閉。 (我只使用gtk對話框,我的主窗口 - 不是gtkWindow,而是X11 Glx窗口)。這裏是我的代碼:GTK窗口小部件對話框不關閉

gtk_init(&argc, &argv); 

    GtkWidget *dialog = gtk_message_dialog_new (NULL, 
            GTK_DIALOG_DESTROY_WITH_PARENT, 
            GTK_MESSAGE_ERROR, 
            GTK_BUTTONS_CLOSE, 
            "Some text", 
            g_strerror (errno)); 

    gtk_dialog_run(GTK_DIALOG (dialog)); 
    gtk_widget_destroy(dialog); 

如果我點擊「關閉」按鈕 - 程序運行繼續,插件對話框失去焦點,但不關閉\躲藏。爲什麼?似乎沒有調用gtk_widget_destroy(對話框)。

p.s.我正在使用Linux 64,eclipse,C++

+0

雖然gtk_message_dialog_new()的參數有點不正確。在這種情況下,通過添加所需的頭文件並使其成爲一個完整的函數,它可以工作得太多。如果你可以發佈[mcve],那麼可以檢查你的問題。 –

回答

0

嘗試使消息框成爲模態對話框。

GtkWidget *dialog = gtk_message_dialog_new (NULL, 
            GTK_DIALOG_MODAL, 
            GTK_MESSAGE_ERROR, 
            GTK_BUTTONS_CLOSE, 
            "Some text", 
            g_strerror (errno));