Enkelt exempel

För att inleda vår introduktion till gtkmm så börjar vi med enklast möjliga program. Detta program kommer skapa ett tomt fönster på 200 × 200 bildpunkter.

Källkod

Vi kommer nu förklara varje del av exemplet

#include <gtkmm.h>

Alla gtkmm-program måste innehålla vissa gtkmm-huvuden; gtkmm.h inkluderar hela gtkmm-kittet. Detta är vanligen ingen bra idé, då det inkluderar en megabyte eller så med huvuden, men för enkla program duger det.

Nästa del av programmet:

class MyWindow : public Gtk::Window
{
public:
  MyWindow();
};

MyWindow::MyWindow()
{
  set_title("Enkelt program");
  set_default_size(200, 200);
}

definierar klassen MyWindow. Dess standardkonstruktor ställer in fönstrets titel och (initial) standardstorlek.

main()-funktionens första sats:

auto app = Gtk::Application::create("org.gtkmm.examples.base");

skapar ett Gtk::Application-objekt, lagrat i en Glib::RefPtr-smartpekare. Detta behövs i alla gtkmm-program. Metoden create() för detta objekt initierar gtkmm.

The last line creates and shows a window and enters the gtkmm main processing loop, which will finish when the window is closed. Your main() function will then return with an appropriate success or error code. The argc and argv arguments, passed to your application on the command line, can be checked when make_window_and_run() is called, but this simple application does not use those arguments.

return app->make_window_and_run<MyWindow>(argc, argv);

Efter att ha stoppat källkoden i simple.cc kan du kompilera programmet ovan med gcc genom:

g++ simple.cc -o simple `pkg-config --cflags --libs gtkmm-4.0` -std=c++17

Observera att du måste omsluta anropet av pkg-config med grav accent (`). Grava accenter får skalet att exekvera kommandot inuti dem, och att använda kommandots utdata som en del av kommandoraden. Observera också att simple.cc måste komma före anropet av pkg-config på kommandoraden. -std=c++17 är endast nödvändigt om din kompilator inte följer C++17 som standard.