GTK выйти из диалогового окна с помощью gtk_widget_destroy? - PullRequest
0 голосов
/ 01 мая 2018

Я пишу простое приложение, чтобы показать диалоговое окно да / нет. Вот моя программа:

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;
}

Когда я нажимаю кнопку «Да» или «Нет», возвращается значение ответа. Но программа не может выйти из диалогового окна. Может ли кто-нибудь помочь мне выяснить проблему? Большое спасибо.

...