i

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.

Suche

v
5.1.4.13.2
www.inf-schule.de/software/gui/entwicklung_tkinter/fensterdialoge/messagebox

Rückmeldung geben