Problem mit Entrys

Fragen zu Tkinter.
Antworten
PelzMorph
User
Beiträge: 8
Registriert: Sonntag 2. April 2006, 16:05
Kontaktdaten:

Hallo,
um es vorwegzunehmen ich habe schon die Suchen funktion benutzt ;)

Jedenfalls. Ich ahbe ein kleines Programm geschrieben, man soll ein paar eingaben tätigen und dann soll eine Funktion da was ausrechnen, allerdings gibt es den Fehler:
Traceback (most recent call last):
File "P:\InformatikKepler\Keplerprogramm.pyw", line 94, in -toplevel-
anfangbutt = Button(hauptfenster, command=rechnung())
File "P:\InformatikKepler\Keplerprogramm.pyw", line 30, in rechnung
PosRech = (float(Ypos) ** 2) + (float(Xpos) ** 2)
ValueError: empty string for float()
Die Funktion sieht folgendermaßen aus:

Code: Alles auswählen

def rechnung():
    M2 = entryMDHO.get()
   # M1 =[1,2]
   # M = 
    
    
    Xpos = entryXposition.get()
   # Xpos1 = [1,2]
   # Xpos2 = Xpos1.index(1)
   # Xpos1 = findall('\d+', Xpos)
    
    Ypos = entryYposition.get()
  #  Ypos1 = [1,2]
  #  Ypos2 = Ypos1.index(1)
  #  Ypos1 = Ypos1.insert(-2, findall('\d+', Ypos))
    
    Xvel = entryXgeschwindigkeit.get()
    
    Yvel = entryYgeschwindigkeit1.get()
    
    f = entryGravitationskonstante.get()
    for i in xrange(100):
        PosRech = (float(Ypos) ** 2) + (float(Xpos) ** 2)
        rabsta = r = sqrt(PosRech)
        abesch = beschleunigunga (float(f), rabsta, float(M))
        ybesch = beschleunigungy (abesch, float(Ypos), rabsta)
        xbesch = beschleunigungx (abesch, float(Xpos), rabsta)

        anzeigetafel.insert(END, rabsta + "\n")
        anzeigetafel.insert(END, abesch + "\n")
        anzeigetafel.insert(END, ybesch + "\n")
        anzeigetafel.insert(END, xbesch + "\n")
        anzeigetafel.insert(END, "-----------------\n")
Und die Entrys so:

Code: Alles auswählen

entryMDHO=Entry(hauptfenster)


entryXposition=Entry(hauptfenster)


entryYposition=Entry(hauptfenster)


entryXgeschwindigkeit=Entry(hauptfenster)


entryYgeschwindigkeit1=Entry(hauptfenster)


entryGravitationskonstante=Entry(hauptfenster)


entryMDHO.grid(row=0,column=1)
entryXposition.grid(row=1,column=1)
entryYposition.grid(row=2,column=1)
entryXgeschwindigkeit.grid(row=0,column=6)
entryYgeschwindigkeit1.grid(row=1,column=6)
entryGravitationskonstante.grid(row=2,column=6)

Schonmal vielen dank für Hilfe.
DANKE :)

gruss
PelzMorph
User
Beiträge: 8
Registriert: Sonntag 2. April 2006, 16:05
Kontaktdaten:

Mein Problem hat sich glaube ich erledigt ich hab e einfach die textvariable=`DoubleVar() hinzugefügt.
Nun habe ich ein Problem mit meinen Formeln,
complexe Division
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

ein tipp meinerseits:
du hast

Code: Alles auswählen

for i in xrange(100):
        PosRech = (float(Ypos) ** 2) + (float(Xpos) ** 2)
        rabsta = r = sqrt(PosRech)
geschrieben, wobei du aber das i von deiner schleife gar nicht benötigst...
du könntest also, damit posrech und rabsta nicht immer wieder neu berechnet werden
die beiden berechnungen ÜBER die schleife schreiben...:

Code: Alles auswählen

PosRech = (float(Ypos) ** 2) + (float(Xpos) ** 2)
rabsta = r = sqrt(PosRech)
for i in xrange(100):
        ...
- mein ja nur :wink:
[size=85]"Unsere Situation ist immer die eines schwarzen Mannes der in einem schwarzen Keller einen schwarzen Hut sucht, den es vielleicht gar nicht gibt." Sir Karl R. Popper[/size]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

PelzMorph hat geschrieben:dann soll eine Funktion da was ausrechnen
Hi PelzMorph!

Ich habe mir nicht alles durchgelesen, aber in der Fehlermeldung steht

Code: Alles auswählen

Button(hauptfenster, command=rechnung())
Sollte das nicht

Code: Alles auswählen

Button(hauptfenster, command=rechnung)
heißen?

Wenn du "rechnung()" übergibst, dann wird doch die Funktion sofort ausgeführt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
PelzMorph
User
Beiträge: 8
Registriert: Sonntag 2. April 2006, 16:05
Kontaktdaten:

Hai,

vielen Dank gerold ;)
Daran lag das echt :D
Was für ne Dummheit meinerseits egal.

Ich habe das jetzt zum laufen. Und es geht.
Mit dem Abstand berechnen geht leider net, da sich die werte ständig verändern :)
Ich habe das auch alles neu gemacht mit Dictionary

danke
Antworten