Seite 1 von 1

Rechnung soll erst später ausgeführt werden.

Verfasst: Samstag 13. Juni 2009, 16:38
von krisi12345
HI!
Ich hab folgendes Problem:
Sobald durch ein Button Klick die DEFenition ausgeführt wird soll die darin enthaltene Aufgabe brechnet werden. Leider merkt man schon beim ausführen des Programmes das die Rechnung sofort berechnet wird.

Code: Alles auswählen

def but1co():
  zeit1 = time()
  999999**99999
  zeit2 = int(time() - zeit1)
  lab1["text"] = "Ergebnis", zeit2
Und wie kann man dafür sorgen das Rechnung erst nach dem def berechnet wird?

Verfasst: Samstag 13. Juni 2009, 16:46
von EyDu
Hallo,

ich vermute mal, dass du Tkinter benutzt. Hättest du das richtige Unterforum gewählt, so hätte man es gleich erkennen können ;-)

Zum eigentlichen Problem: Bei der Definition des Buttons hast du wahrscheinlich folgendes stehen:

Code: Alles auswählen

Button(..., command=but1co(), ...)
Damit wird die Funktion sofort ausgeführt. Richtig sollte es also heißen:

Code: Alles auswählen

Button(..., command=but1co, ...)
Deine Funktion muss dann noch einen weiteren Parameter übernehmen können. Wenn du das nicht möchtest, dann benutze diese Lösung:

Code: Alles auswählen

Button(..., command=lambda e: but1co(), ...)
Wenn das dein Problem nicht lösen sollte, müsstest du etwas mehr Code zeigen, zumindest alle Stellen, an denen "but1co" vorkommt.

Was soll eigentlich das 999999**99999?
Dann sehe ich noch *-Import, welche du lassen solltest.
"but1co", "labl" und "zeit2" sind reichlich nichtssagende Namen, die solltest du besser wählen.

Sebastian