[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