Rechnung soll erst später ausgeführt werden.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

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?
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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
Das Leben ist wie ein Tennisball.
Antworten