Programmation GTK2 en Pascal/Le placement des contrôles

Un livre de Wikilivres.
Programmation GTK2 en Pascal

Le placement des contrôles visuels avec Gtk+ peut paraître de prime abord complexe. Mais quand on a bien compris la logique du système, cela ne pose pas de problèmes particuliers.

La particularité de Gtk+[modifier | modifier le wikicode]

De nombreuses API de gestion d'interface graphique fonctionne en positionnant le contrôle visuel de manière très précise en indiquant les coordonnées en pixels. Gtk+ ne fonctionne pas ainsi. À la création d'un contrôle, on lui fournit un ensemble de paramètres généraux et c'est Gtk+ qui va précisément s'occuper du positionnement, de la largeur, etc.

Les avantages sont une application qui s'adapte très bien à la taille de la fenêtre et donc à son redimensionnement, à la taille de l'écran, aux thèmes Gtk+, etc.

Les conteneurs[modifier | modifier le wikicode]

Afin de placer un contrôle visuel de base comme un bouton, ou un champ de saisie dans une fenêtre, on va utiliser des conteneurs. Des conteneurs spéciaux existent qui regroupent les contrôles de manière verticale ou bien horizontale, il s'agit des GtkVBox et des GtkHBox.

Voici un exemple de conteneur GtkVBox dans lequel on a placé des boutons. Ceux-ci s'empilent verticalement dans le conteneur.

Ci-dessous, voici un exemple de conteneur GtkHBox.

L'empilement des conteneurs[modifier | modifier le wikicode]

On peut placer un ou plusieurs conteneurs dans un autre conteneur. C'est d'ailleurs ce qu'on fait quand on place un GtkVBox par exemple dans une fenêtre. La fenêtre est un conteneur.

Cette combinaison va nous permettre de définir des interfaces très complexes.

Voici ci-dessus un exemple relativement simple. On peut bien entendu imbriquer plusieurs GtkBox l'une dans l'autre.