web-dev-qa-db-fra.com

Comment changer la couleur d'une étiquette Tkinter par programme?

J'essaie de changer la couleur d'une étiquette Tkinter chaque fois que l'utilisateur clique sur le bouton de vérification. J'ai du mal à écrire la fonction correctement et à la connecter au paramètre de commande.

Voici mon code:

import Tkinter as tk

root = tk.Tk()
app = tk.Frame(root)
app.pack()

label = tk.Label(app, bg="white", pady=5, font=(None, 1), height=20, width=720)
checkbox = tk.Checkbutton(app, bg="white", command=DarkenLabel)
label.grid(row=0, column=0, sticky="ew")
checkbox.grid(row=0, column=0, sticky="w")

def DarkenLabel():
    label.config(bg="gray")

root.mainloop()

Je vous remercie

6
Sean W

Dans votre code, command=DarkenLabel ne trouve pas de référence à la fonction DarkenLabel. Vous devez donc définir la fonction au-dessus de cette ligne, vous pouvez donc utiliser votre code comme suit:

import Tkinter as tk


def DarkenLabel():
    label.config(bg="gray")

root = tk.Tk()
app = tk.Frame(root)
app.pack()

label = tk.Label(app, bg="white", pady=5, font=(None, 1), height=20, width=720)
checkbox = tk.Checkbutton(app, bg="white", command=DarkenLabel)
label.grid(row=0, column=0, sticky="ew")
checkbox.grid(row=0, column=0, sticky="w")
root.mainloop()

J'espère que cela aide!

8
abhinav