Ouvrir une nouvelle fenêtre dans une application Tkinter peut être un défi pour de nombreux développeurs.
Sans une bonne gestion, cela peut entraîner une interface confuse et peu ergonomique, frustrant ainsi vos utilisateurs.
Cet article vous guide sur l’utilisation de Toplevel de Tkinter pour créer et gérer efficacement des fenêtres additionnelles.
Créez des interfaces graphiques interactives avec Python et TKinter !

Bouton pour ouvrir fenêtre Tkinter
L’ouverture de nouvelles fenêtres dans une application Tkinter peut être essentielle pour afficher des informations ou des interactions supplémentaires sans quitter la fenêtre principale. Pour gérer cela de manière efficace, Tkinter propose plusieurs options, dont la création de fenêtres filles (appelées Toplevel ). Nous allons voir ici comment implémenter cette fonctionnalité.
Pour commencer, nous créons un bouton qui, lorsqu’il est cliqué, appelle une fonction qui ouvre une nouvelle fenêtre.
btn = tk.Button(root,text="Nouvelle Fenêtre",command=show_window)
btn.pack()
Le bouton est lié à la fonction show_window() , qui se chargera de créer et d’afficher la nouvelle fenêtre.
Créer nouvelle fenêtre Tkinter Toplevel
La fonction show_window() définit une nouvelle fenêtre en utilisant Toplevel , qui est une fenêtre fille liée à la fenêtre principale ( root ). Voici un exemple de cette fonction :
defshow_window():
window = tk.Toplevel(root)# Création d'une nouvelle fenêtre
window.title("Nouvelle Fenêtre")# Définition du titre
window.geometry("300x200")# Dimensions de la fenêtre
# Personnalisation de la fenêtre
window.configure(bg="gray",relief="raised")# Changement de couleur de fond et du relief
# Gestion des interactions avec la fenêtre
window.transient(root)# Place la fenêtre fille au-dessus de la fenêtre parent
window.grab_set()# Empêche l'utilisateur d'interagir avec la fenêtre parent
window.focus_set()# Donne le focus à la fenêtre fille
Personnaliser fenêtres filles Tkinter
Dans cette section, nous allons explorer quelques-unes des méthodes et propriétés essentielles pour manipuler les fenêtres dans Tkinter. Lors de la création d’une fenêtre fille (ou fenêtre secondaire), il est souvent nécessaire de gérer son comportement par rapport à la fenêtre principale. Des méthodes telles que transient() , grab_set() , et focus_set() permettent de contrôler l’affichage, la gestion des interactions et l’ordre de focus entre les fenêtres. Ces outils sont particulièrement utiles lorsque vous souhaitez créer des fenêtres modales ou garantir qu’une fenêtre secondaire reste visible au premier plan, améliorant ainsi l’expérience utilisateur. Voici des explications pour chacune de ces méthodes :
- window.transient(root) :Cette méthode permet de placer la fenêtre fille au-dessus de la fenêtre principale, ce qui garantit que la nouvelle fenêtre reste toujours visible et au premier plan par rapport à la fenêtre parent. Cela est utile pour des fenêtres contextuelles ou des boîtes de dialogue qui doivent rester accessibles.
- window.grab_set() :En utilisant cette méthode, vous pouvez empêcher l’utilisateur d’interagir avec la fenêtre principale tant que la nouvelle fenêtre n’est pas fermée. Cela crée un effet de modalité, obligeant l’utilisateur à se concentrer sur la fenêtre fille avant de revenir à la fenêtre principale.
- window.focus_set() :Cette méthode assure que la fenêtre fille prend immédiatement le focus lors de sa création, permettant une interaction directe avec elle sans que l’utilisateur ait besoin de cliquer dessus pour la sélectionner. C’est particulièrement utile dans les dialogues qui nécessitent une réponse immédiate.
Ces méthodes garantissent une meilleure gestion des fenêtres secondaires et améliorent l’ergonomie des applications graphiques
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 ouvrir une nouvelle fenêtre dans Tkinter?
Qu'est-ce que Toplevel dans Tkinter?
Comment personnaliser une fenêtre Toplevel?
Comment gérer les interactions entre fenêtres Tkinter?
Que se passe-t-il si la fenêtre principale Tkinter est fermée?
Conclusion
En exploitant les fonctionnalités de Tkinter pour gérer les fenêtres, vous pouvez considérablement améliorer l’ergonomie de votre application. Quelles autres fonctionnalités de Tkinter envisagez-vous d’explorer pour enrichir votre interface utilisateur?