【问题标题】:How can I close and re-open Turtle Screen in Python如何在 Python 中关闭和重新打开 Turtle Screen
【发布时间】:2015-04-03 07:59:35
【问题描述】:

你能指导我吗?画了一个正方形后,如何关闭屏幕再重新打开?

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

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

【问题讨论】:

    标签: python-2.7


    【解决方案1】:

    如果您将 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()
    

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

    【讨论】:

    • 从您的问题中不清楚您是否希望重新打开的窗口具有相同的内容。这个例子不会那样做,那样会更复杂。
    • 我知道你已经很久没有发布这个了,但是我能问一下为什么画布旁边会打开另一个窗口,我该如何阻止它?
    • @Sank6 另一个窗口是什么意思?
    • 运行上述程序时,会沿着画布打开另一个名为 tk 的窗口
    猜你喜欢
    • 2011-09-19
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多