Re: Gtk::Application - Switching between two Gtk::Window



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




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]