2017-03-22 2 views
3

Ich versuche, die Farbe eines Tkinter-Labels zu ändern, wenn der Benutzer auf die Schaltfläche "Prüfen" klickt. Ich habe Probleme, die Funktion korrekt zu schreiben und diese mit dem Befehlsparameter zu verbinden.Wie programmiere ich die Farbe eines Tkinter-Labels?

Hier ist mein 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() 

Danke

+0

Es funktioniert gut, Sie müssen nur die "DarkenLabel" -Funktion vor, wo Sie es als Befehlsvariable verwenden verschieben. Sehen Sie, dass es nicht funktioniert oder erhalten Sie eine Ausnahme, wenn Sie das Skript ausführen? –

+0

Wirklich so einfach! –

Antwort

5

in Ihrem Code command=DarkenLabel nicht in der Lage ist Verweis auf die Funktion DarkenLabel zu finden. Daher müssen Sie die Funktion über dieser Zeile definieren, damit Sie Ihren Code wie folgt verwenden können:

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() 

Ich hoffe, es hilft!

+0

Nun, ich suchte nach einer so coolen und einfachen Lösung und kodierte viele verschiedene Ideen, einschließlich ttk und so weiter, wo ich ein Label editierte, wo 'Erleichterung' nicht mehr funktionieren würde ... Aber dein Tipp machte meinen Abend. Thx +1 – Semo

Verwandte Themen