Ci-contre, le code pour obtenir la fenêtre ci-dessus à l'aide de la méthode pack()
.
Rappel : lors de sa création, un widget est généralement stocké dans une variable. C'est à cette variable qu'on applique la méthode pack().
Méthode pack()
Par défaut, les widgets s'empilent les uns sous les autres, au centre de la fenêtre. Si l'un d'eux est décalé par side='left'
(ou side='right'
), il vient s'aligner sur le bord gauche en s'extrayant du "flux" : les suivants reviennent par défaut s'aligner en haut de la fenêtre.
Il est possible d'utiliser des cadres (Frame) pour regrouper des widgets et réaliser des interfaces complexes.
Observer les exemples ci-dessous pour comprendre le fonctionnement de pack() (la fenêtre principale s'appelle "jeu"). Cet exemple utilise des boutons mais les principes restent les mêmes quels que soient les widgets.
Placement | Code (extrait) |
---|---|
![]() |
|
Réaliser l'interface suivante.
On utilisera LabelFrame(fenetre_cible, text='...') et la commande associée au bouton sera None (utile lorsque la véritable fonction n'est pas encore programmée). Attention, le widget LabelFrame n'apparaît dans la fenêtre que s'il contient un widget (il reste invisible tant qu'il est vide).
Méthode pack()
Remarque : pour faciliter la compréhension du code ci-dessus, le cadre peut être rendu visible en spécifiant une largeur
de bordure et un relief : bd
= borderwidth en pixels et relief
('sunken', 'raised', 'groove' ou 'ridge
).
Expérimenter à partir des exemples fournis.
D'autres options de
placement sont disponibles : side='top'
, side='bottom'
et side='right'
.
Par ailleurs, il est possible d'adapter la taille d'un widget à son conteneur (fenêtre ou cadre) via l'option fill.
Avec fill='x'
, le widget occupe tout l'espace horizontal disponible. Autres valeurs possibles :
fill='y'
ou fill='both'
avec l'option expand=1
.
Placement | Code (extrait) |
---|---|
La conception d'une interface graphique nécessite un schéma ou un dessin préparatoire.
Ressources : Python tutorial