hi,
als noob (sooooorrrryyyy) habe ich da mal so ein kleines projekt angefangen und habe diesbezueglich einmal ein paar fragen... vielleicht kann mir jemand hier helfen...
ich habe 4 eingabefelder erschaffen bei denen folgendes passieren soll...
wert aus feld eins (erwachsene personenanzahl) soll mit dem wert aus feld drei (preis fuer nen erwachsenen) multipliziert werden.
wert aus feld zwei (kinder anzahl) soll mit wert aus feld vier (preis fuers kind) multipliziert werden.
dann sollen diese beiden ergebnisse addiert werden und in dem fenster ausgegeben werden...
die felder und deren beschreibung habe ich ohne groessere probleme erschaffen koennen... bei den rechenfunktionen allerdings stosse ich jetzt auf meine grenzen...
wuerde mich ueber hilfe sehr freuen!
G
berechnungen mit informationen aus eingabefeldern
*schaem* ...strotzt bestimmt nur so vor fehlern...
Code: Alles auswählen
from tkinter import *
def berechnung():
Adults=float(Apeople.get())
Children=float(Cpeople.get())
totalad=Adults*Aprice
totalch=Children*Cprice
totalprice=totalad+totalch
labelresult=Label(fenster,text="TOTAL %.2f" %totalprice).grid(row=7, column=2)
fenster = Tk()
fenster.title("Calculator")
fenster.geometry("300x300")
Aprice = StringVar()
Cprice = StringVar()
Apeople = StringVar()
Cpeople = StringVar()
Adultsprice = Entry(fenster, textvariable=Aprice)
Adultsprice.pack()
label1 = Label(text="Price per Adult")
label1.pack()
Childrenprice = Entry(fenster, textvariable=Cprice)
Childrenprice.pack()
label2 = Label(text="Price per Child")
label2.pack()
Adultpeople = Entry(fenster, textvariable=Apeople)
Adultpeople.pack()
label3 = Label(text="How many Adults?")
label3.pack()
Children = Entry(fenster, textvariable=Cpeople)
Children.pack()
label4 = Label(text="How many Children?")
label4.pack()
label5 = Label(text="TOTAL")
label5.pack()
Calculate = Button(fenster, text="Calculate", command=berechnung)
Calculate.pack()
mainloop()
Der Fehler ist:
TypeError: unsupported operand type(s) for *: 'float' and 'StringVar'
in der Zeile totalad=Adults*Aprice
Da wolltest du ein float und StringVar multiplizieren, das ist nicht möglich, du musst StringVar als float umwandeln, wie du es eine zeile zuvor auch getan hast.
So kann es funitionieren:
TypeError: unsupported operand type(s) for *: 'float' and 'StringVar'
in der Zeile totalad=Adults*Aprice
Da wolltest du ein float und StringVar multiplizieren, das ist nicht möglich, du musst StringVar als float umwandeln, wie du es eine zeile zuvor auch getan hast.
So kann es funitionieren:
Code: Alles auswählen
from tkinter import *
def berechnung():
Adults = float(Apeople.get())
Children = float(Cpeople.get())
totalad = Adults * float(Aprice.get())
totalch = Children * float(Cprice.get())
totalprice = totalad + totalch
result.set("TOTAL %.2f" %totalprice)
if __name__ == "__main__":
fenster = Tk()
fenster.title("Calculator")
fenster.geometry("300x300")
Aprice = StringVar()
Cprice = StringVar()
Apeople = StringVar()
Cpeople = StringVar()
result = StringVar()
Adultsprice = Entry(fenster, textvariable=Aprice)
Adultsprice.pack()
label1 = Label(text="Price per Adult")
label1.pack()
Childrenprice = Entry(fenster, textvariable=Cprice)
Childrenprice.pack()
label2 = Label(text="Price per Child")
label2.pack()
Adultpeople = Entry(fenster, textvariable=Apeople)
Adultpeople.pack()
label3 = Label(text="How many Adults?")
label3.pack()
Children = Entry(fenster, textvariable=Cpeople)
Children.pack()
label4 = Label(text="How many Children?")
label4.pack()
label5 = Label(text="TOTAL")
label5.pack()
Calculate = Button(fenster, text="Calculate", command=berechnung)
Calculate.pack()
labelresult = Entry(fenster, textvariable=result)
labelresult.pack()
mainloop()