You don't have to create one Gtk::Application for each
Gtk::Window. There are some multi-window application examples in
the gtkmm tutorial, for example
https://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/application/simple
Those programs call Application::run() only once.
If you need to keep the Application alive, i.e. keep it from
returning from run(), when no window exists, then use
Gio::Application::hold().
Kjell
Den 2016-06-24 kl. 11:41, skrev
Kjell Ahlstedt:
Terribly late reply. Don't know if you've found a solution.
I tested with one of the example programs in the gtkmm tutorial.
I created two identical windows, and called app->run() twice.
The result was
GLib-GIO-CRITICAL **: g_application_parse_command_line:
assertion '!application->priv->options_parsed' failed
and a segfault. I don't think Gtk::Application::run() is meant
to be called more than once. A possible solution is to create
two Gtk::Applications.
auto app1 = Gtk::Application::create(argc, argv,
"org.gtkmm.example");
RadioButtons buttons1;
app1->run(buttons1);
auto app2 = Gtk::Application::create(argc, argv,
"org.gtkmm.example");
RadioButtons buttons2;
return app2->run(buttons2);
Kjell
Den 2016-05-17 kl. 17:35,
skrev Tiago Matias:
Before the line gtkmm_main->run (GuiWindow::Instance ()), I
added the the following line:
gtkmm_main->add_window(GuiWindow::Instance ());
This not have solved my problem.
Best Regards,
Tiago Matias
On 05/17/2016 02:22 PM, Phil Wolff
wrote:
Be sure that your Gtk::Application calls
add_window() on GuiWindow::Instance (). Gtk::Application can't
properly handle any window it isn't aware of.
On 2016/05/17 06:09, Tiago Matias wrote:
Hi,
I'm with a problem in a gtkmm application.
I have a main file where a Gtk::Application runs a
Gtk::Window. This window loads some configurations when is
showing a backgroud image. In the final of the loading this
window calls the function hide() ant the program returns to
the main file program.
Glib::RefPtr<Gtk::Application> gtkmm_main =
Gtk::Application::create(argc, argv, "org.gtkmm.example");
gtkmm_main->run (IntroWindow::Instance());
After this, the Gtk::application runs other window:
gtkmm_main->run (GuiWindow::Instance ());
However, in this window, when i call the function hide(),
the program don't return to the main file program. If i
don't run the first window, the program returns. It seams
that are some problem in the switching of the windows. Can
anyone help me.
Best Regards,
Tiago Matias
|