Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

KIDS

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.

Anwendungsfenster

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.

Anwendungsfenster

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.

X

Fehler melden

X

Suche