Ejemplo simple

Para iniciar nuestra introducción a gtkmm, vamos a empezar con el programa más simple posible. Este programa va a crear una ventana vacía de 200 x 200 píxeles.

Source Code

File: base.cc (For use with gtkmm 3, not gtkmm 2)

#include <gtkmm.h>

int main(int argc, char *argv[])
{
  auto app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::Window window;
  window.set_default_size(200, 200);

  return app->run(window);
}

Ahora se explicará cada línea del ejemplo

#include <gtkmm.h>

Todos los programas gtkmm deben incluir ciertas cabeceras gtkmm: gtkmm.h incluye el kit completo de gtkmm. Esto no suele ser una buena idea, ya que incluye casi un megabyte de cabeceras, pero para programas sencillos, basta.

The next statement:

Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.examples.base");
creates a Gtk::Application object, stored in a RefPtr smartpointer. This is needed in all gtkmm applications. The create() method for this object initializes gtkmm, and checks the arguments passed to your application on the command line, looking for standard options such as --display. It takes these from the argument list, leaving anything it does not recognize for your application to parse or ignore. This ensures that all gtkmm applications accept the same set of standard arguments.

Las dos siguientes líneas de código crean una ventana y establecen su tamaño (inicial) predeterminado:

Gtk::Window window;
window.set_default_size(200, 200);

La última línea muestra la ventana y entra al bucle principal de gtkmm, que terminará cuando la ventana se cierre. Su función main() entonces retornará con un éxito apropiado o un código de error.

return app->run(window);

After putting the source code in simple.cc you can compile the above program with gcc using:

g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`
Note that you must surround the pkg-config invocation with backquotes. Backquotes cause the shell to execute the command inside them, and to use the command's output as part of the command line. Note also that simple.cc must come before the pkg-config invocation on the command line.