C 使用GTK_小部件_销毁GTK退出对话框?

C 使用GTK_小部件_销毁GTK退出对话框?,c,gtk,gtk2,C,Gtk,Gtk2,我编写了一个简单的应用程序来显示“是/否”对话框。这是我的节目: static gint confirmation_dialog() { GtkWidget *label; GtkWidget *box; GtkWidget *dialog; gint response; gtk_init(NULL,NULL); /* If we use convenience API function gtk_dialog_new_with_buttons, * last six function c

我编写了一个简单的应用程序来显示“是/否”对话框。这是我的节目:

static gint confirmation_dialog()
{
GtkWidget *label;
GtkWidget *box;
GtkWidget *dialog;
gint response;
gtk_init(NULL,NULL);
/* If we use convenience API function gtk_dialog_new_with_buttons,
    * last six function calls can be written as: */
dialog = gtk_dialog_new_with_buttons( "Confirmation",
                                        NULL,
                                        GTK_DIALOG_MODAL,
                                        GTK_STOCK_YES, GTK_RESPONSE_YES,
                                        GTK_STOCK_NO,  GTK_RESPONSE_NO,
                                        NULL );

/* Create label */
label = gtk_label_new( "There is new update, do you want to proceed?" );

/* Pack label, taking API change in account. */
 #if GTK_MINOR_VERSION < 14
box = GTK_DIALOG(dialog)->vbox;
#else
box = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
#endif
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);

/* Show dialog */
gtk_widget_show_all( dialog );
/* Run dialog */
response = gtk_dialog_run(GTK_DIALOG(dialog));
//gtk_widget_hide( dialog );
gtk_widget_destroy(dialog);
return response;
}
静态gint确认\u对话框()
{
GtkWidget*标签;
GtkWidget*框;
GtkWidget*对话框;
基特反应;
gtk_init(NULL,NULL);
/*如果我们使用方便的API函数gtk_dialog_new_和按钮,
*最后六个函数调用可以写成:*/
dialog=gtk_dialog_new_,带有按钮(“确认”,
无效的
GTK_对话框_模态,
GTK_库存_是,GTK_响应_是,
GTK_库存号、GTK_响应号、,
无效);
/*创建标签*/
label=gtk_label_new(“有新的更新,您想继续吗?”);
/*包装标签,考虑API变化*/
#如果GTK_次要版本<14
box=GTK_对话框(DIALOG)->vbox;
#否则
box=gtk_对话框_获取内容_区域(gtk_对话框(对话框));
#恩迪夫
gtk_盒包装开始(gtk_盒(盒),标签,真,真,0);
/*显示对话框*/
gtk_小部件_全部显示(对话框);
/*运行对话框*/
响应=gtk_对话框运行(gtk_对话框(对话框));
//gtk_小部件_隐藏(对话框);
gtk_小部件_销毁(对话框);
返回响应;
}
当我单击yes或no按钮时,返回响应值。但程序无法退出对话框。大家能帮我找出问题吗?
非常感谢。

展示一些——没有它,你的问题就不清楚了。因此,编辑您的问题以改进它。顺便说一句,更新到GTK3。使用所有警告和调试信息编译
gcc-Wall-Wextra-g
。改进您的代码,使其不出现警告,然后了解出错的地方。欢迎使用堆栈溢出!您的代码不完整;特别是,它似乎缺少一个
main()
函数和至少一个
#include
。请输入您的代码,使其成为您问题的一部分(包括任何必要的输入,但最好不需要任何输入),然后我们可以尝试复制并解决它。你也应该阅读。