Für die Schule sollen wir einen BMI (Body Mass Index) Rechner schreiben. Soweit so gut, die Berechnung und Ausgabe, sowie eine Interpretation des berechneten BMIs funktonieren bereits.
Jedoch sollen wir eine Eingabemöglichkeit für das Geschlecht schreiben (was auch noch klappt) und jenachdem ob dort "maennlich" oder "weiblich" eingegeben wird, soll sich die Farbe des Frames, nachdem man auf den Berechnen Button geklickt hat, zu blaub (bei maennlich) oder pink/ rosa (bei weiblich) ändern.
Mein Code:
Code: Alles auswählen
from tkinter import *
def bmiberechnung(Groesse, Gewicht):
BMIm = (float(Gewicht)/(float(Groesse)*float(Groesse)))
return (BMIm)
def Button_Berechnen_Clickm():
# Uebernahme der Daten
Gewicht = entryGewicht.get()
Groesse = entryGroesse.get()
# Verarbeitung der Daten
BMI = bmiberechnung(Groesse, Gewicht)
# Anzeige der Daten
anzeigeBMI = '{0:.2f}'. format(BMI)
labelWertBMI.config(text=anzeigeBMI)
# Abfrage fuer das Geschlecht, Frame- Farbe aendern
if entryGeschlecht == "maennlich":
frameEingaben.config(background="#0000FF")
if entryGeschlecht == "weiblich":
frameEingaben.config(background="#FF00BF")
# Abfrage fuer die Interpretation des BMI
if float(anzeigeBMI) <= 16:
labelAuswertung2.config(text="Starkes Untergewicht", background="#2E2EFE")
if float(anzeigeBMI) > 16:
labelAuswertung2.config(text="maessiges Untergewicht", background="#0000FF")
if float(anzeigeBMI) > 17:
labelAuswertung2.config(text="leichtes Untergewicht", background="#A9BCF5")
if float(anzeigeBMI) > 18:
labelAuswertung2.config(text="Normalgewicht", background="#088A08")
if float(anzeigeBMI) > 25:
labelAuswertung2.config(text="Praedipositas/ Uebergewicht", background="#FFFF00")
if float(anzeigeBMI) > 30:
labelAuswertung2.config(text="Adipositas Grad I", background="#FF8000")
if float(anzeigeBMI) >35:
labelAuswertung2.config(text="Adipositas Grad II", background="#DF0101")
if float(anzeigeBMI) >= 40:
labelAuswertung2.config(text="Adipositas Grad III", background="#610B0B")
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title("BMI- Rechner")
tkFenster.geometry('700x500')
# Rahmen fuer die Ueberschrift
frameUeberschrift = Frame(master=tkFenster,
background="#889E9D")
frameUeberschrift.place(x=5, y=5, width=690, height=45)
# Rahmen fuer die Eingaben
frameEingaben = Frame(master=tkFenster,
background="#ACFA58")
frameEingaben.place(x=5, y=60, width=690, height=100)
# Rahmen fuer die Verarbeitung
frameVerarbeitung = Frame(master=tkFenster,
background="#FBD975")
frameVerarbeitung.place(x=5, y=172, width=690, height=44)
# Rahmen fuer die Ausgaben
frameAusgabe = Frame(master=tkFenster,
background="#ACFA58")
frameAusgabe.place(x=5, y=221, width=690, height=101)
# Rahmen fuer die Auswertung
frameAuswertung = Frame(master=tkFenster,
background="#ACFA58")
frameAuswertung.place(x=5, y=325, width=690, height=168)
# Label fuer die Ueberschrift
labelUeberschrift = Label(master=frameUeberschrift,
background="white",
text="BMI- Rechner")
labelUeberschrift.place(x=270, y=12, width=190, height=20)
# Label mit Aufschrift Gewicht
labelgewicht = Label(master=frameEingaben,
background="white",
text="Gewicht in [kg]")
labelgewicht.place(x=385, y=10, width=175, height=20)
# Label mit Aufschrift Alter
labelalter = Label(master=frameEingaben,
background="white",
text="Alter in [Jahren]")
labelalter.place(x=5, y=10, width=175, height=20)
# Label mit Aufschrift Groesse
labelgroesse = Label(master=frameEingaben,
background="white",
text="Groesse in [m]")
labelgroesse.place(x=385, y=60, width=175, height=20)
# Label mit Aufschrift Vorname
labelvorname = Label(master=frameEingaben,
background="white",
text="Dein Vorname")
labelvorname.place(x=5, y=35, width=175, height=20)
# Label mit Aufschrift name
labelname = Label(master=frameEingaben,
background="white",
text="Dein Nachname")
labelname.place(x=385, y=35, width=175, height=20)
# Label mit Aufschrift Geschlecht
labelGeschlecht = Label(master=frameEingaben,
background="white",
text="Dein Geschlecht")
labelGeschlecht.place(x=5, y=60, width=175, height=20)
# Entry fuer das Alter
entryAlter = Entry(master=frameEingaben)
entryAlter.place(x=210, y=10, width=80, height=20)
# Entry fuer das Gewicht
entryGewicht = Entry(master=frameEingaben)
entryGewicht.place(x=580, y=10, width=80, height=20)
# Entry fuer den Vornamen
entryVorname = Entry(master=frameEingaben)
entryVorname.place(x=210, y=35, width=80, height=20)
# Entry fuer den Namen
entryName = Entry(master=frameEingaben)
entryName.place(x=580, y=35, width=80, height=20)
# Entry fuer die Groesse
entryGroesse = Entry(master=frameEingaben)
entryGroesse.place(x=580, y=60, width=80, height=20)
# Entry fuer das Geschlecht
entryGeschlecht = Entry(master=frameEingaben)
entryGeschlecht.place(x=210, y=60, width=80, height=20)
# Button Berechnen m
buttonBerechnenm = Button(master=frameVerarbeitung,
text="berechnen",
command=Button_Berechnen_Clickm)
buttonBerechnenm.place(x=290, y=12, width=100, height=20)
# Label mit Aufschrift Dein BMI
labelBMI = Label(master=frameAusgabe,
background="white",
text="Dein BMI ist:")
labelBMI.place(x=130, y=30, width=175, height=20)
# Label fuer den Wert des BMI
labelWertBMI = Label(master=frameAusgabe,
background="white",
text="")
labelWertBMI.place(x=330, y=30, width=100, height=20)
# Label fuer Auswertung
labelAuswertung = Label(master=frameAuswertung,
background="white",
text="Auswertung deines BMI:")
labelAuswertung.place(x=370, y=90, width=200, height=20)
# Label fuer Auswertung
labelAuswertung2 = Label(master=frameAuswertung,
background="white",
text="")
labelAuswertung2.place(x=370, y=120, width=200, height=20)
# Aktivierung des Fensters
tkFenster.mainloop()
Hoffe jemand kann mir helfen
