É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.

Les éléments graphiques sont disposés dans des conteneurs tels que cadres et bloc-notes, avec une hiérarchie entre éléments graphiques. Certains de ces conteneurs d'éléments graphiques, comme les Gtk::Grid, ne sont pas visibles ‑ ils ne participent qu'à la disposition relative des éléments graphiques. Voici un exemple de code qui place deux contrôles Gtk::Button dans un conteneur d'éléments graphiques Gtk::VBox :

m_box.pack_start(m_Button1);
m_box.pack_start(m_Button2);
et voici comment ajouter le Gtk::VBox, contenant ces boutons, dans un Gtk::Frame, qui possède un cadre et un titre visibles :
m_frame.add(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.

Même si les instances d'éléments graphiques gtkmm ont des durées de vie et des portées comme toute autre classe C++, gtkmm dispose d'une fonctionnalité optionnelle que vous pourrez observer dans certains exemples ; elle permet de gagner du temps. Gtk::manage() vous permet d'indiquer qu'un élément graphique enfant est détenu par le conteneur dans lequel vous le placez. Cela permet de créer l'élément graphique avec new, l'ajouter au conteneur et ne pas vous préoccuper de sa destruction. Vous en apprendrez plus au sujet des techniques de gestion de la mémoire dans gtkmm dans le chapitre Gestion de la mémoire.