À l'ouverture du programme, une fenêtre de préférences s'affiche.
Veuillez choisir le
format de fichier du projet GtkBuilder, sinon gtk sera incapable de lire le fichier .glade.
Si vous auriez choisi Libglade, l'utilisation du fichier aurait été différente.
Une fois lancé, notre concepteur d'interface ressemble à ceci :
Son interface est composée de quatre parties principales :
- la colonne de gauche : notre palette de widgets ;
- au centre : notre zone de travail ;
- en haut à droite : l'arbre de nos widgets ;
- en bas à droite : les propriétés du widget sélectionné.
La palette des widgets
Si vous ne savez pas ce qu'est un widget, c'est le moment où jamais pour l'apprendre : le widget est l'élément de base d'une interface graphique, comme l'atome est l'unité de base pour une molécule, ou encore la cellule pour un organisme vivant. Bref, vous m'aurez compris, les interfaces que nous allons créer ensemble ne sont rien d'autre qu'un amas de widgets hiérarchisés.
Regardons de plus près cette palette. Elle nous indique qu'il y a 4 familles de widgets.
Widgets de niveau supérieur
Ces widgets sont les grands-parents. Ils contiendront tous les autres, mais ne peuvent être contenus eux-mêmes. C'est pour ça qu'ils sont dits "de niveau supérieur".
Il s'agit des fenêtres et des boîtes de dialogue.
Vous pouvez en ajouter quelques-uns sur notre zone de travail simplement en les sélectionnant dans la palette. Vous constaterez qu'il en existe de très complexes, qui sont en fait des assemblages de widgets plus simples. Comme ces assemblages reviennent dans énormément de programmes, on les a réuni dans un seul widget pour vous simplifier la tâche !
Conteneurs
Ces widgets comme leur nom l'indique vont contenir d'autres widgets plus petits. Ils servent à organiser l'intérieur d'une fenêtre. Il s'agit de tableaux, de frames, de menus et d'onglets. Leur utilisation avisée fera que votre interface sera bonne ou pas.
On peut bien sûr les imbriquer les uns dans les autres pour arriver à des configurations complexes et adaptées.
Vous pouvez essayer d'en ajouter, mais il faudra au préalable avoir posé une fenêtre sur la zone de travail !
Pour ajouter un conteneur, sélectionnez-le dans la palette, puis cliquez dans la zone de travail sur le widget qui sera son parent.
Contrôle et affichage
Voilà maintenant plein de petits widgets de base tous plus utiles les uns que les autres !
Toutes sortes de boutons, des labels, des images, des zones de texte, tout y est.
Leur utilisation détaillée fera l'objet de la plus grosse partie de ce cours. Mais sachez déjà que les possibilités offertes par ces widgets sont immenses, et que le cours ne pourra jamais tout couvrir. C'est là que lire la documentation de PyGTK vous sera utile.
Les widgets obsolètes
Ces widgets ne sont plus d'actualité, il est déconseillé de les utiliser donc nous n'en parlerons pas ici. Vous vous demandez sûrement pourquoi on les a mis là si on ne doit plus les utiliser ? Simplement pour un souci de rétrocompatibilité : le concepteur doit rester capable d'ouvrir de vieux fichiers Glade.
La zone de travail
C'est l'équivalent de la zone de dessin pour un logiciel de dessin. Ce que vous y verrez dépendra de votre projet.
Elle donne un aperçu du look final de votre interface, ce qui est utile quand il s'agit de régler finement des marges ou autres petits détails.
C'est bien entendu dans cette zone qu'on organisera nos widgets entre eux, et à ce titre-là elle fait double emploi avec l'"arbre des widgets" que je vais vous présenter de ce pas.
L'arbre des widgets
Voilà une partie du concepteur qui est bien plus importante qu'il n'y paraît.
On y trouve la hiérarchie des widgets de notre interface, sous forme d'un arbre dont on peut déplier les branches.
Pourquoi cette partie est-elle si importante ?
- Il est très aisé d'y sélectionner un widget précis, ce qui peut s'avérer compliqué dans la zone de travail, dans le cas d'un widget extrêmement petit par exemple.
- Le clic droit sur un widget nous donne accès à des actions très utiles, comme insérer/supprimer un parent !
- Dans le cas où l'on travaille avec plusieurs widgets de niveau supérieur, c'est la seule façon pour passer de l'un à l'autre.
La zone des propriétés
Cette zone en bas à droite du concepteur permet de modifier les propriétés du widget sélectionné. C'est une partie immense qu'on ne pourra pas trop détailler, mais rassurez- vous, on en verra les grandes lignes car elle est très utile.
Comme vous vous en doutez, elle s'adapte à chaque widget, on y trouvera donc des choses différentes selon qu'on a sélectionné une fenêtre ou un bouton par exemple. Mais bien qu'elle change tout le temps de contenu, ce contenu est toujours organisé de la même manière à l'aide de cinq onglets :
- général : pour des propriétés générales telles que le nom du widget ;
- regroupement : pour régler le comportement graphique du widget par rapport aux autres ;
- commun : pour régler des propriétés communes à tous les widgets (par exemple le fait qu'il soit visible ou caché) ;
- signaux : pour régler, je vous le donne en mille... les signaux émis par les widgets. On verra de quoi il s'agit plus tard ;
- accessibilité : pour rendre votre interface lisible par un lecteur d'écran pour non-voyants. Comme je ne connais pas encore cette partie, je ne pense pas écrire dessus.