Я использую gtkmm 3.0.1, и я не вижу возможности при создании объекта Gtk::MessageDialog
, чтобы уничтожить диалог после того, как пользователь нажал кнопку. Единственный способ, которым я обнаружил, чтобы уничтожить диалоговое окно сообщения, - это вызвать его во вторичной функции, но я чувствую, что у этого есть возможность избежать. В документации не упоминается ни один способ ее уничтожения, а только упоминается, что пользователь может ее уничтожить.уничтожить диалоговое окно сообщений gtkmm?
Вот мой код:
#include <gtkmm.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
Gtk::Main kit(argc, argv);
Gtk::Window client;
Gtk::MessageDialog dialog("Info", false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO);
dialog.set_secondary_text("Dialog");
dialog.set_default_response(Gtk::RESPONSE_YES);
dialog.run();
cout << "dialog is still open, needs to be destroyed at this point." << endl;
Gtk::Main::run(client);
return EXIT_SUCCESS;
}
Я предполагаю: поскольку Gtk :: Main :: run (client) не вызывается, диалог не принимает события. –
Что ты имеешь в виду? 'Gtk :: Main :: run (client);' находится от второй до последней команды. – cellsheet
... после Gtk :: MessageDialog –