Auswahl mit Checkbutton
Verwendung von Checkbutton
Checkbutton werden verwendet, wenn mehrere Elemente einer vorgegebenen Liste ausgewählt werden können. Jeder Checkbutton kann - unabhängig von den anderen Checkbutton - aktiviert bzw. deaktiviert werden.
Beispiel 1: Binärdarstellung von Zahlen
Hier kann der Benutzer mit Hilfe von Checkbutton ein Bitmuster einstellen. Ausgegeben wird die zugehörige Dualzahl.

Mit dem folgenden Programm lässt sich diese grafische Benutzeroberfläche implementieren.
from tkinter import *
# Ereignisverarbeitung
def auswahlClick():
dezimalzahl = wert0.get() + wert1.get() + wert2.get() + wert3.get()
labelText.config(text=str(dezimalzahl))
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title('Test')
tkFenster.geometry('120x150')
# Rahmen Checkbutton
frameCheckbutton = Frame(master=tkFenster, bg='#FFCFC9')
frameCheckbutton.place(x=5, y=5, width=110, height=105)
# Rahmen Ausgabe
frameAusgabe = Frame(master=tkFenster, bg='#D5E88F')
frameAusgabe.place(x=5, y=115, width=110, height=30)
# Kontrollvariablen
wert0 = IntVar()
wert1 = IntVar()
wert2 = IntVar()
wert3 = IntVar()
# Checkbutton
checkbutton0 = Checkbutton(master=frameCheckbutton, anchor='w',
text='2^0', offvalue=0, onvalue=1, variable=wert0,
command=auswahlClick)
checkbutton0.place(x=5, y=5, width=100, height=20)
checkbutton1 = Checkbutton(master=frameCheckbutton, anchor='w',
text='2^1', offvalue=0, onvalue=2, variable=wert1,
command=auswahlClick)
checkbutton1.place(x=5, y=30, width=100, height=20)
checkbutton2 = Checkbutton(master=frameCheckbutton, anchor='w',
text='2^2', offvalue=0, onvalue=4, variable=wert2,
command=auswahlClick)
checkbutton2.place(x=5, y=55, width=100, height=20)
checkbutton3 = Checkbutton(master=frameCheckbutton, anchor='w',
text='2^3', offvalue=0, onvalue=8, variable=wert3,
command=auswahlClick)
checkbutton3.place(x=5, y=80, width=100, height=20)
# Label Text
labelText = Label(master=frameAusgabe, bg='white', text=str(wert0.get()))
labelText.place(x=5, y=5, width=100, height=20)
# Aktivierung des Fensters
tkFenster.mainloop()
Eine Checkbutton-Komponente wird mit Hilfe eines Checkbutton
-Objekts erstellt.
Ein solches Objekt benutzt die Attribut offvalue
und onvalue
,
um die Werte zu verwalten, die den Zuständen "deaktiviert" bzw. "aktiviert" entsprechen.
Mit einer dem GUI-Objekt zugeordneten Kontrollvariablen kann man auf diese Werte zugreifen.
Beachte, dass man für jedes Checkbutton
-Objekt eine Kontrollvariable benötigt.
Aufgabe 1
Teste das vorgegebene Programm.