Auswahl mit Radiobutton
Verwendung von Radiobutton
Radiobutton werden verwendet, wenn der Benutzer genau ein Element aus einer vorgegebenen Menge von Elementen auswählen soll.
Beispiel 1: Auswahl der Tageszeit
Hier kann der Benutzer die Tageszeit auswählen.
Mit dem folgenden Programm lässt sich diese grafische Benutzeroberfläche implementieren.
from tkinter import *
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title('Test')
tkFenster.geometry('120x125')
# Rahmen Radiobutton
frameRadiobutton = Frame(master=tkFenster, bg='#FFCFC9')
frameRadiobutton.place(x=5, y=5, width=110, height=80)
# Rahmen Ausgabe
frameAusgabe = Frame(master=tkFenster, bg='#D5E88F')
frameAusgabe.place(x=5, y=90, width=110, height=30)
# Kontrollvariable
tageszeit = StringVar()
# Radiobutton
radiobutton1 = Radiobutton(master=frameRadiobutton, anchor='w',
text='morgens', value='Guten Morgen!', variable=tageszeit)
radiobutton1.place(x=5, y=5, width=100, height=20)
radiobutton2 = Radiobutton(master=frameRadiobutton, anchor='w',
text='mittags', value='Guten Tag!', variable=tageszeit)
radiobutton2.place(x=5, y=30, width=100, height=20)
radiobutton3 = Radiobutton(master=frameRadiobutton, anchor='w',
text='abends', value='Guten Abend!', variable=tageszeit)
radiobutton3.place(x=5, y=55, width=100, height=20)
radiobutton1.select()
# Label Text
labelText = Label(master=frameAusgabe, bg='white', textvariable=tageszeit)
labelText.place(x=5, y=5, width=100, height=20)
# Aktivierung des Fensters
tkFenster.mainloop()
Eine Radiobutton-Komponente wird mit Hilfe eines Radiobutton
-Objekts verwaltet.
Ein solches Objekt verwaltet mit Hilfe des Attributs value
einen Wert
(der im vorliegenden Programm vom Typ str
ist).
Bei mehreren Radiobutton
-Objekten benötigt man eine Kontrollvariable
zur Verwaltung des ausgewählten Werts. Im vorliegenden Programm wird das vom
StringVar
-Objekt tageszeit
übernommen.
Dieses Kontrollobjekt muss erzeugt werden (im Programm oben durch tageszeit = StringVar()
) und
mit den einzelnen Radiobutton-Objekten verknüpft werden. Letzteres erfolgt mit dem Attribut variable
des Radiobutton
-Objekts.
Zugriff auf den ausgewählten Wert des Kontrollobjekts hat man mit den Methoden get
und
set
.
Aufgabe 1
Teste das vorgegebene Programm.
Beispiel 2: Auswahl einer Größe
In diesem Beispiel werden die Werte der Radiobutton mit einer Kontrollvariable
vom Typ DoubleVar
verwaltet.
Die Radiobutton-Objekte sind hier zudem mit einer Ereignisbehandlungsprozedur verbunden.
Mit dem folgenden Programm lässt sich diese grafische Benutzeroberfläche implementieren.
from tkinter import *
# Ereignisverarbeitung
def auswahlClick():
anzeige = str(wert.get()) + ' Liter'
labelText.config(text=anzeige)
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title('Test')
tkFenster.geometry('120x125')
# Rahmen Radiobutton
frameRadiobutton = Frame(master=tkFenster, bg='#FFCFC9')
frameRadiobutton.place(x=5, y=5, width=110, height=80)
# Rahmen Ausgabe
frameAusgabe = Frame(master=tkFenster, bg='#D5E88F')
frameAusgabe.place(x=5, y=90, width=110, height=30)
# Kontrollvariable
wert = DoubleVar()
# Radiobutton
radiobutton1 = Radiobutton(master=frameRadiobutton, anchor='w',
text='klein', value=0.2, variable=wert,
command=auswahlClick)
radiobutton1.place(x=5, y=5, width=100, height=20)
radiobutton2 = Radiobutton(master=frameRadiobutton, anchor='w',
text='mittel', value=0.3, variable=wert,
command=auswahlClick)
radiobutton2.place(x=5, y=30, width=100, height=20)
radiobutton3 = Radiobutton(master=frameRadiobutton, anchor='w',
text='gross', value=0.5, variable=wert,
command=auswahlClick)
radiobutton3.place(x=5, y=55, width=100, height=20)
radiobutton1.select()
# Label Text
labelText = Label(master=frameAusgabe, bg='white', text=str(wert.get()) + ' Liter')
labelText.place(x=5, y=5, width=100, height=20)
# Aktivierung des Fensters
tkFenster.mainloop()
Aufgabe 2
Führe selbst Experimente mit Radiobutton durch.