Seite 1 von 1

Richtige Ausgabe von einer Berechnung in einem Label

Verfasst: Donnerstag 3. Januar 2013, 14:24
von PheysX

Code: Alles auswählen

from tkinter import *
from math import *

F = Tk ()
F.title ("Hausarbeit")

u_max, v_max =499, 399 
g = Canvas(F,width=u_max+1, height=v_max+1, bg="white")


def Berechnen ():
    
    q = float(qwert.get())
    l =  float(lwert.get())
    E =  float(ewert.get())
    I =  float(iwert.get())

    w = ((5/384) * ((q*(l**4)) / (E*I)))

    Ergebnis = w
    
    TA.insert (0,Ergebnis)


g.create_line(0,400,600,400, fill="#d9d9d9")

# Anzeigebild:
bild = PhotoImage(file="grafik_410x306.gif")
Label(image = bild).grid (row=0, column=0, columnspan=3)


# Labels: q l E I Werte:
g.grid(column=0,row=0,columnspan=3)

Label(text="q= ").grid(row=1,column=0,sticky="e")
qwert=Entry(width=10)
qwert.grid(row=1,column=1, sticky="w")

Label(text="l= ").grid(row=2,column=0,sticky="e")
lwert=Entry(width=10)
lwert.grid(row=2,column=1,sticky="w")

Label(text="E= ").grid(row=3,column=0,sticky="e")
ewert=Entry(width=10)
ewert.grid(row=3,column=1,sticky="w")

Label(text="I= ").grid(row=4,column=0,sticky="e")
iwert=Entry(width=10)
iwert.grid(row=4,column=1,sticky="w")


# Buttons Berechnen und Ergebnisse anzeigen:
b=Button(text="Berechnen", width=10, command=Berechnen).grid(row=1,column=1,sticky="e")
b=Entry(width=10)
b.grid(row=2,column=1,sticky="w")

# Ausgabe von w:
Ergebnis=StringVar()
Label (textvariable=TA).grid(row=5,column=1,sticky="w")


F.update()
F.mainloop()

Ich habe jetzt 2 Probleme, das Ergebnis wird nicht in der Variable ausgegeben und ich bekomme immer die Fehlermeldung das es nicht in float konvertiert ist. Ich weiß echt nicht wie ich das ändern soll, ich brauche eure Hilfe

Re: Richtige Ausgabe von einer Berechnung in einem Label

Verfasst: Donnerstag 3. Januar 2013, 14:33
von Sirius3
Hallo PheysX,

bitte immer den Code so posten, wie Du ihn auch benutzt.

Wo tritt der Fehler auf?
Welches »es« ist nicht in float konvertiert?

Re: Richtige Ausgabe von einer Berechnung in einem Label

Verfasst: Donnerstag 3. Januar 2013, 14:50
von PheysX
Das ist der genaue Quelltext den ich benutze:

Code: Alles auswählen

from tkinter import *
from math import *

F = Tk ()
F.title ("Hausarbeit")

u_max, v_max =499, 399 
g = Canvas(F,width=u_max+1, height=v_max+1, bg="white")


def Berechnen ():
    #try:
    print ("Diese Funktion berechnet mit den eingegebenen Daten q,l,e und i die Verformung eines, wie in der Grafik sehbaren Balkens!")     #Definition Berechnen

    q =  float(qwert.get())
    l =  float(lwert.get())
    E =  float(ewert.get())
    I =  float(iwert.get())

    w = ((5/384) * ((q*(l**4)) / (E*I)))

    Ergebnis = w
    
    TA.insert(0,Ergebnis)

    #except: print ("Sorry")

g.create_line(0,400,600,400, fill="#d9d9d9")

# Anzeigebild:
bild = PhotoImage(file="grafik_410x306.gif")
Label(image = bild).grid (row=0, column=0, columnspan=3)


# Labels: q l E I Werte:
g.grid(column=0,row=0,columnspan=3)

Label(text="q= ").grid(row=1,column=0,sticky="e")
qwert=Entry(width=10)
qwert.grid(row=1,column=1, sticky="w")

Label(text="l= ").grid(row=2,column=0,sticky="e")
lwert=Entry(width=10)
lwert.grid(row=2,column=1,sticky="w")

Label(text="E= ").grid(row=3,column=0,sticky="e")
ewert=Entry(width=10)
ewert.grid(row=3,column=1,sticky="w")

Label(text="I= ").grid(row=4,column=0,sticky="e")
iwert=Entry(width=10)
iwert.grid(row=4,column=1,sticky="w")


# Buttons Berechnen und Ergebnisse anzeigen:
b=Button(text="Berechnen", width=10, command=Berechnen).grid(row=1,column=1,sticky="e")
b=Entry(width=10)
b.grid(row=2,column=1,sticky="w")

# Ausgabe von w:
TA=StringVar()
Label (textvariable=TA).grid(row=5,column=1,sticky="w")



F.update()
F.mainloop()
Das ist die Fehlermedlung

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1442, in __call__
return self.func(*args)
File "C:\Users\...\Desktop\Hausarbeit\hausarbeit.py", line 16, in Berechnen
l = float(lwert.get())
ValueError: could not convert string to float:

Re: Richtige Ausgabe von einer Berechnung in einem Label

Verfasst: Donnerstag 3. Januar 2013, 15:22
von Sirius3
Dein l-Wert ist keine Zahl.