2017-01-11 2 views
1

beenden Ich habe das Haus von Santa Claus mit tkinter zu ziehen, aber wenn mit dem folgenden Code stoppt kurz nach der ersten ZeilePython tkinter nicht die Zeichnung

Zuerst habe ich Schildkröte importieren und öffnen Sie die GUI-Bildschirm

import turtle as t 
t.Screen() 

dann verwende ich diesen Code

>>> s = 100 
>>> points = [(s,0), (s,s), (0,0), (s,s), (s/2.,2.*s), (0,s), (s,0)] 
>>> for p in points: 
     t.goto(p) 
     t.mainloop() 

aber es stoppt nach der ersten Zeile, wie kann ich dieses Problem beheben?

Antwort

3

Wie in der Dokumentation für turtle.mainloop angegeben:

turtle.mainloop()

Startet Ereignisschleife - Tkinter die mainloop Funktion aufrufen. Muss die letzte Anweisung in einem Turtle-Grafikprogramm sein. Dürfen nicht verwendet werden, wenn ein Skript aus IDLE in -n-Modus (keine subprocess) ausgeführt wird - für die interaktive Nutzung von Schildkröte Grafiken

Hier ist aber nicht die letzte Aussage ist: Es ist für jeden point genannt wird in points. So haben Sie Ihr Programm neu schreiben zu:

for p in points: 
    t.goto(p) 

t.mainloop() 

Wenn Sie den zweiten Fettdruck Teil der Beschreibung lesen, ist es nicht einmal notwendig, es zu nennen: Ihr Programm nicht interaktiv ist. Also das folgende Programm wird ausreichen:

import turtle as t 
t.Screen() 

for p in points: 
    t.goto(p) 
+1

ok thx, jetzt funktioniert es – hudini