2016-10-22 112 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));