Organiser efficacement les widgets en Tkinter peut être un défi, surtout pour les interfaces complexes.
Une mauvaise disposition peut entraîner des interfaces désordonnées et peu fonctionnelles, frustrant l’utilisateur final.
La méthode grid de Tkinter offre une solution structurée et précise pour agencer vos widgets et optimiser l’espace de l’interface.
Créez des interfaces graphiques interactives avec Python et TKinter !
Méthode Grid Tkinter : Introduction
Comme son nom l’indique, la méthode grid en Tkinter organise les widgets dans une grille, composée de lignes et de colonnes. Cette méthode est particulièrement utile pour aligner plusieurs éléments dans une disposition structurée. Voici un exemple simple d’utilisation de grid :
Nous commençons par créer trois boutons :
btn1 = Button(root,text="Bouton 1")
btn2 = Button(root,text="Bouton 2")
btn3 = Button(root,text="Bouton 3")
Pour positionner ces boutons dans la grille, il faut spécifier les attributs column et row afin d’indiquer leur emplacement :
btn1.grid(column=0,row=0)
btn2.grid(column=1,row=0)
btn3.grid(column=2,row=1)
En exécutant ce code, chaque bouton sera placé dans la cellule correspondante de la grille (définie par les indices de colonne et de ligne).
Widgets Tkinter : Organisation en Grille
Si vous sautez une colonne ou une ligne sans y placer un élément, le système de grille ne la comptera pas comme « occupée », et vous devrez remplir les colonnes et les lignes de manière séquentielle. Par exemple :
btn1.grid(column=0,row=0)
btn2.grid(column=1,row=0)
btn3.grid(column=3,row=1)# Cela ne fonctionnera pas correctement
Dans cet exemple, la colonne 2 est vide, donc placer un élément directement dans la colonne 3 ne donnera pas le résultat attendu. Et le résultat d’exécution va être le suivant :
Pour résoudre ce problème, vous devez remplir chaque colonne dans l’ordre ou utiliser une approche différente si vous souhaitez laisser une colonne vide.
Alignement Avancé avec Grid Tkinter
Écriture simplifiée avec grid
Il est possible de combiner la création d’un widget et son positionnement dans la grille en une seule ligne. Par exemple :
btn1 = Button(root,text="Bouton 1",font="Arial 20").grid(column=0,row=0)
Cette écriture plus concise est souvent utilisée pour les petites interfaces.
Attributs utiles avec grid
Il existe plusieurs attributs importants que vous pouvez utiliser avec la méthode grid pour personnaliser l’apparence et optimiser le comportement des widgets dans une interface Tkinter. Grâce à ces options, vous pouvez mieux contrôler l’agencement des éléments en fonction des besoins de votre application.
- padx / pady :Ajoutent des marges extérieures autour du widget, respectivement sur l’axe horizontal (X) et vertical (Y).
- ipadx / ipady :Ajoutent des marges internes, augmentant l’espace à l’intérieur du widget.
- sticky :Permet de définir l’alignement du widget dans sa cellule. Vous pouvez utiliser les points cardinaux (N, S, E, W) pour positionner le widget dans la cellule. Il est possible de combiner plusieurs valeurs, comme sticky= »W+E », pour que le widget s’étende horizontalement et soit centré. Pour mieux comprendre l’utilisation de cet attribut, Voici un simple exemple explicatif :
btn1.grid(column=0,row=0)
btn2.grid(column=0,row=1,sticky="S")# Aligne le bouton 2 au bas de la cellule
btn3.grid(column=1,row=1)
En exécutant ce code, le bouton 2 est aligné en bas de sa cellule grâce à sticky= »S », et le bouton 3 est placé normalement comme il est bien montré dans la figure suivante :
Attributs columnspan et rowspan
Les attributs columnspan et rowspan permettent à un widget d’occuper plusieurs colonnes ou lignes. Cela est utile lorsque vous voulez qu’un widget prenne plus de place que sa cellule d’origine. Voici un exemple d’utilisation de columnspan :
from tkinter import *
root = Tk()
btn1 = Button(root,text="Bouton 1")
btn2 = Button(root,text="Bouton 2")
btn3 = Button(root,text="Bouton 3")
btn1.grid(column=0,row=0,columnspan=2)# Le bouton 1 occupe deux colonnes
btn2.grid(column=1,row=0)
root.mainloop()
Dans cet exemple, le bouton 1 s’étendra sur deux colonnes, occupant ainsi plus d’espace dans la grille.
Utilisations de Grid dans Tkinter
La méthode grid() est un autre gestionnaire de mise en page en Tkinter, utilisé pour organiser les widgets sous forme de grille dans une fenêtre. Contrairement à la méthode pack() , grid() permet de placer des widgets avec une plus grande précision en spécifiant les lignes et colonnes. Cela en fait une option idéale lorsque vous devez aligner plusieurs composants de manière structurée. Cette méthode est utilisé pour :
- Mise en page complexe :Si vous avez besoin de plusieurs widgets disposés en lignes et colonnes, comme dans les formulaires ou les interfaces de type tableau,grid()est parfaitement adapté.
- Alignement précis :grid()vous permet de positionner les widgets dans des cellules spécifiques, en utilisant les attributsrowetcolumn, pour un contrôle précis de l’emplacement.
- Gestion de l’espace :Vous pouvez également utiliser les optionsrowspanetcolumnspanpour faire en sorte qu’un widget s’étende sur plusieurs lignes ou colonnes.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne la méthode grid en Tkinter ?
Quels sont les attributs importants de la méthode grid ?
Comment créer une interface en utilisant grid dans Tkinter ?
Quels problèmes résoudre avec la méthode grid ?
Comment optimiser l'espace avec grid dans Tkinter ?
Conclusion
En maîtrisant la méthode grid de Tkinter, vous pouvez créer des interfaces utilisateur robustes et bien organisées. Quelles autres techniques de disposition graphique avez-vous explorées en Python ?