Messagebox-Fenster

Ein neues Fenster

Wir betrachten die folgende Interaktionssituation:

Anwendungsfenster

Wenn der Benutzer keine sinnvollen Eingaben macht, dann soll ein neues Fenster mit einer Fehlermeldung erzeugt werden.

Anwendungsfenster

Wenn der Benutzer die Schaltfläche mit der Beschriftung "genug" anklickt, dann soll in einem neuen Fenster nochmal nachgefragt werden, ob der Benutzer das Programm tatsächlich beenden möchte.

Anwendungsfenster

Das folgende Programm zeigt, wie man solche Messagebox-Fenster auf einfache Weise erzeugen kann.

from tkinter import *
# Ereignisbehandlung

def buttonBerechnenClick():
    try:
        # Übernahme der Daten
        gewicht = float(entryGewicht.get())
        groesse = float(entryGroesse.get())
        # Verarbeitung der Daten
        bmi = gewicht/(groesse*groesse)
        bmiAnzeige = str(round(bmi*10)/10)
        # Anzeige der Daten
        labelBMI.config(text=bmiAnzeige)
    except:
        messagebox.showerror('Fehler', 'Keine sinnvolle Eingabe!')

def buttonBeendenClick():
    if messagebox.askyesno('Beenden', 'Soll das Programm wirklich beendet werden?'):
        tkFenster.quit()
        tkFenster.destroy()
        
# Fenster
tkFenster = Tk()
tkFenster.title('BMI')
tkFenster.geometry('258x195')
# Label mit Aufschrift Gewicht
labelGewicht = Label(master=tkFenster, bg='#FFCFC9', text='Gewicht in kg:')
labelGewicht.place(x=54, y=24, width=100, height=27)
# Entry für das Gewicht
entryGewicht = Entry(master=tkFenster, bg='white')
entryGewicht.place(x=164, y=24, width=40, height=27)
# Label mit Aufschrift Größe
labelGroesse = Label(master=tkFenster, bg='#FFCFC9', text='Größe in m:')
labelGroesse.place(x=54, y=64, width=100, height=27)
# Entry für die Größe
entryGroesse = Entry(master=tkFenster, bg='white')
entryGroesse.place(x=164, y=64, width=40, height=27)
# Button zum Berechnen
buttonBerechnen = Button(master=tkFenster, bg='#FBD975', text='berechnen',
                         command=buttonBerechnenClick)
buttonBerechnen.place(x=54, y=104, width=100, height=27)
# Button Beenden
buttonBeenden = Button(master=tkFenster, bg='#FBD975', text='genug',
                       command=buttonBeendenClick)
buttonBeenden.place(x=164, y=104, width=40, height=27)
# Label mit Aufschrift BMI-Wert
labelBMIWert = Label(master=tkFenster, bg='#D5E88F', text='BMI-Wert:')
labelBMIWert.place(x=54, y=144, width=100, height=27)
# Label für den BMI-Wert
labelBMI = Label(master=tkFenster, bg='gray', text='')
labelBMI.place(x=164, y=144, width=40, height=27)
# Aktivierung des Fensters
tkFenster.mainloop()

Aufgabe 1

Welche Programmteile sind für die Erzeugung der Messagebox-Fenster zuständig? Ändere sie geringfügig ab, um deine Vermutungen zu überprüfen.

X

Fehler melden

X

Suche