Оба создают окна Gtk, но я не могу понять, что происходит за кулисами. Я пытался привязать сигнал к кнопке, чтобы выйти из окна, но программа получила SIGSEGV при использовании Gtk::Application::create
. Когда я изменил программу, чтобы следовать Gtk::Main
соглашения. Все работало нормально.
Gtk::Application::create
программа (не работает):
auto app = Gtk::Application::create(argc, argv);
Gtk::Button *button = new Gtk::Button("Quit");
button->signal_clicked().connect(sigc::ptr_fun(Gtk::Main::quit));
Gtk::Window window;
window.set_default_size(200, 200);
window.add(*button);
button->show();
return app->run(window);
Gtk::Main
программа (работает):
auto app = Gtk::Main(argc, argv);
Gtk::Button *button = new Gtk::Button("Quit");
button->signal_clicked().connect(sigc::ptr_fun(app.quit));
Gtk::Window window;
window.set_default_size(200, 200);
window.add(*button);
button->show();
app.run(window);
return 0;