Seite 1 von 1

BMI-Rechner: Rechnen und Eingabe

Verfasst: Sonntag 24. März 2019, 20:59
von marenitaet
Ich habe als Anfänger-Übung einen BMI Rechner gebaut. Nun möchte ich eine GUI dazu erstellen.
Mein Problem ist, dass ich einen Button erstellt habe (berechnenb) und wenn man auf diesen Klicks, soll er die Eingaben übernehmen und zu #Rechnen springen. Wie bekomm ich das hin?
(Der berechnenb ist noch auskommentiert, bis dahin läuft das Programm super)

Code: Alles auswählen

from tkinter import *

#Fenster erstellen & benennen
fenster = Tk()
fenster.title("BMI-Rechner")

#Buttons
exitb = Button(fenster, text="Beenden", command=fenster.quit)
#berechnenb = Button(fenster, text="Berechnen", command=rechnen)

#Eingabezeilen
Geschlecht = Entry(fenster)
Gewicht = Entry(fenster)
Groesse = Entry(fenster)

#Anzeige Fenster1
Label(fenster, text="Wenn du männlich bist, tippe eine 1 ein, wenn du weiblich bist, dann eine 2!").grid(row=0, column=0)
Geschlecht.grid(row=1, column=0, pady = 10)
Label(fenster, text="Gib dein Gewicht in kg an").grid(row=2, column=0)
Gewicht.grid(row=3, column=0, pady = 10)
Label(fenster, text="Gib deine Größe in cm an").grid(row=4, column=0)
Groesse.grid(row=5, column=0, pady = 10)
exitb.grid(row=6, column=1)
#berechnenb.grid(row=6, column=0) 

#Eingaben
def Geschlecht():
	float(eingabe.get)
	
def Gewicht():
	float(eingabe.get)
	
def Groesse():
	float(eingabe.get)

fenster.mainloop()
	
#Rechnen
def rechnen():
	if Geschlecht==1:
		u=19
		o=24
	else:
		u=20
		o=25

BMI=(Gewicht/(1.0*Groesse*Groesse))*10000

if BMI<u:
    print("Dein BMI ist " + str(BMI) + ". Damit bist du untergewichtig!")

elif BMI>o:
    print("Dein BMI ist " + str(BMI) + ". Damit bist du übergewichtig!")

else:
    print("Dein BMI ist " + str(BMI) + ". Damit bist du normalgewichtig!")


Re: BMI-Rechner: Rechnen und Eingabe

Verfasst: Sonntag 24. März 2019, 21:29
von __deets__
Du hast mehrere Probleme in deinem Code:

- du vergibst Namen wie “Geschlecht” zweimal. Und verlierst so die Möglichkeit, auf das ursprüngliche Objekt zuzugreifen.
- den Wert eines entries holt man sich mit get - aber du musst es auch aufrufen. ein_entry.get() - man beachte die Klammern.
- deine Berechnung erfolgt in Code der nie erreicht wird. Du musst eine Funktion schreiben, die du dann mit einem button als ein Kommando ausführen lässt.