Python GUI Development

Maîtriser la gestion des widgets Tkinter : Masquer, Afficher et Supprimer

Spread the love

Tkinter offre un contrôle dynamique sur les éléments de l’interface graphique, permettant de gérer la visibilité et l’existence des widgets selon les besoins. Cet article explore les techniques pour masquer, récupérer et supprimer définitivement des widgets, en fournissant des exemples pratiques pour améliorer vos applications Tkinter.

Table des matières

Masquer et récupérer des widgets Tkinter

Masquer et récupérer des widgets offre un moyen flexible de gérer la complexité de l’interface utilisateur sans consommer une mémoire excessive. Cette approche est idéale pour des fonctionnalités telles que les sections rétractables ou la bascule d’options avancées. Les méthodes principales sont widget.place_forget() et widget.place(x, y) (ou des gestionnaires de géométrie équivalents comme grid et pack).

Exemple utilisant le gestionnaire de géométrie place :


import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Ceci est une étiquette")
button = tk.Button(root, text="Masquer/Afficher l'étiquette", command=lambda: hide_show_label())

label.place(x=50, y=50)
button.place(x=50, y=100)

hidden = False

def hide_show_label():
    global hidden
    if hidden:
        label.place(x=50, y=50)
        button.config(text="Masquer l'étiquette")
        hidden = False
    else:
        label.place_forget()
        button.config(text="Afficher l'étiquette")
        hidden = True

root.mainloop()

Exemple utilisant le gestionnaire de géométrie grid :


import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Ceci est une étiquette")
button = tk.Button(root, text="Masquer/Afficher l'étiquette", command=lambda: hide_show_label())

label.grid(row=0, column=0)
button.grid(row=1, column=0)

hidden = False

def hide_show_label():
    global hidden
    if hidden:
        label.grid(row=0, column=0)
        button.config(text="Masquer l'étiquette")
        hidden = False
    else:
        label.grid_forget()
        button.config(text="Afficher l'étiquette")
        hidden = True

root.mainloop()

N’oubliez pas d’adapter les commandes du gestionnaire de géométrie (place, grid, pack) en fonction de votre disposition. place_forget() et grid_forget() suppriment le widget de la vue, tandis que la réapplication de la configuration du gestionnaire de géométrie (place, grid ou pack) le restaure.

Supprimer définitivement des widgets Tkinter

Supprimer définitivement un widget le supprime de la mémoire, empêchant les fuites de mémoire et les conflits potentiels. Ceci est réalisé à l’aide de la méthode widget.destroy().

Exemple :


import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Cette étiquette sera supprimée")
button = tk.Button(root, text="Supprimer l'étiquette", command=lambda: delete_label())

label.place(x=50, y=50)
button.place(x=50, y=100)

def delete_label():
    label.destroy()

root.mainloop()

label.destroy() supprime complètement l’étiquette. Toute tentative d’accès après la destruction entraînera une erreur. Choisissez entre masquer/récupérer et supprimer en fonction des besoins de votre application. Masquer/récupérer convient pour un retrait temporaire, tandis que supprimer est préférable pour un retrait permanent afin de gérer efficacement la mémoire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *