[python-users] Tkinterprobleme
prof. dr. peter ziese
p.ziese at t-online.de
Do Apr 19 14:02:17 CEST 2007
Hallo,
ich hoffe, ich stelle keine allzu dumme Frage, naja und wenn schon...
Ich wollte die Funktion sleep() bei der Grafiklprogrammierung benutzen, so wie
es zB. in folgendem snippetim Textbereich erfolgt:
from time import *
for i in range(5)
print ctime().split()[3]
sleep(1)
Ich habe ein kleines Beispiel dafür:
# strahlenkranz
from Tkinter import *
from math import *
from time import *
fenster=Tk()
fenster.title('strahlenkranz')
breite=600
hoehe=300
c=Canvas(fenster,width=breite,height=hoehe)
c.pack()
for z in range(1,180):
strahl=c.create_line(breite/2,hoehe/2,breite/2+180*cos(z),hoehe/2+60*sin(z),fill='red')
sleep(0.01)
fenster.mainloop()
Die Einrückung ist im Browser nicht korrekt, bei mir schon. Das Ergebnis ist
jedoch nicht wie gewünscht. Das Programm wartet zu Beginn die 'sleep-zeit'
ab, und läuft dann ungebremst ab. Egal, wo ich sleep() einfüge, das Ergebnis
ist das gleiche. Ich habe daraufhin eine eigene Funktion 'pause()'
geschrieben, die die Differenz ziwschen Startzeit und aktueller Zeit
überprüft, und wenn dieser Wert mit dem Übergabewert übereinstimmt,
zurückkehrt. Das Ergebnis ist das gleiche. Ich habe dann in die Steinmzeit
des Programmierens zurückgegriffen und eine Zählschleife bemüht. Das Ergebnis
immer das gleiche: Statt die Ausführuing der Grafik zu verlangsamen, erfolgt
zu Beginn eine Pause. Ich habe 2 Fragen:
1) Warun ist das so?
2) Wie lann ich das ändern, damit ich die Grafik kontrolliert langsamer
ablaufen lassen kann?
MfG
Peter
Mehr Informationen über die Mailingliste python-users