如何在Python中关闭并重新打开Turtle Screen

时间:2015-04-03 07:59:35

标签: python-2.7

你可以指导我吗?绘制正方形后,如何关闭屏幕然后重新打开它?

import turtle
win = turlte.Screen()
Man = turtle.Turtle()

for i in range(4):
    Man.fd(100)
    Man.right(90)

1 个答案:

答案 0 :(得分:0)

如果您将Tkinter与turtle.RawTurtle(canvas)一起使用,则可以访问所有Tkinter的函数,RawTurtlecanvas作为参数,这是一个tkinter画布对象。在这种情况下,您可以创建一个新的tkinter.Toplevel,您可以在其上创建一个可以使用RawTurtle的画布。像这样:

import turtle, random, time
from Tkinter import *
tk = Toplevel()
screen = Canvas(tk, width=500, height=500)
screen.pack()

t = turtle.RawTurtle(screen)

t.speed(0)
t.hideturtle()

def spiral(len, angle):
    for current in range(1, int(len)):
        thetext = 'Currently turning '+str(a)+' degrees, then moving '+str(current)+' pixels'
        textitem = screen.create_text(-250, -250, text=thetext, anchor='nw', font=('Purisa', 12))
        t.forward(current)
        t.left(int(angle))
        screen.delete(textitem)
    t.up()
    t.goto(0, 0)
    t.down()


a, b = random.randint(-360, 360), 100
t.clear()
spiral(b, a)
tk.destroy()

print 'Still running'
time.sleep(1)
print 'Still running'

new = Toplevel()

newscreen = Canvas(new, width=500, height=500)
newscreen.pack()

t2 = turtle.RawTurtle(newscreen)
t2.fd(10)

正如您所看到的,使用RawTurtle,我们可以创建和销毁tkinter窗口,其中包含用作龟窗口的画布。如第一个窗口所示,另一个优点是您可以创建文本,就像在tkinter画布上一样。这段代码在python 2.7中工作,可能需要一些小修改才能在python 3中工作,我不知道。无论如何,在这个例子中,我们随意创建并销毁了龟窗。该计划的主要部分是

tk = Toplevel()
screen = Canvas(tk, width=500, height=500)
screen.pack()

t = turtle.RawTurtle(screen)

创建一个新的龟窗口,其中t为乌龟,

tk.destroy()

将在不停止程序的情况下杀死龟窗。希望这有帮助!