Éléments graphiques

Les applications gtkmm sont constituées par des fenêtres comportant des éléments graphiques, comme des boutons ou des boîtes de texte. Dans certains autres systèmes, les éléments graphiques sont appelés « contrôles ». Pour chaque élément graphique dans les fenêtres d'une application, il existe un objet C++ dans le code de l'application. Il vous suffit donc d'appeler une fonction membre de la classe de l'élément graphique pour en modifier l'apparence.

Widgets are arranged inside container widgets such as frames and notebooks, in a hierarchy of widgets within widgets. Some of these container widgets, such as Gtk::Grid, are not visible - they exist only to arrange other widgets. Here is some example code that adds 2 Gtk::Button widgets to a Gtk::Box container widget:

m_box.append(m_Button1);
m_box.append(m_Button2);
and here is how to add the Gtk::Box, containing those buttons, to a Gtk::Frame, which has a visible frame and title:
m_frame.set_child(m_box);

La plupart des chapitres de cet ouvrage traitent d'éléments graphiques spécifiques. Consultez la section Éléments graphiques conteneurs pour de plus amples précisions sur la manière de placer des éléments graphiques dans des conteneurs.

Même s'il est possible de préciser la disposition et l'apparence des fenêtres ainsi que des éléments graphiques dans le code C++, vous trouverez certainement plus pratique de concevoir vos interfaces utilisateur avec Glade et de les charger avec Gtk::Builder à l'exécution de l'application. Consultez le chapitre Glade et Gtk::Builder.

Although gtkmm widget instances have lifetimes and scopes just like those of other C++ classes, gtkmm has an optional time-saving feature that you will see in some of the examples. The Gtk::make_managed() allows you to create a new widget and state that it will become owned by the container into which you place it. This allows you to create the widget, add it to the container and not be concerned about deleting it, since that will occur when the parent container (which may itself be managed) is deleted. You can learn more about gtkmm memory management techniques in the Memory Management chapter.