首页 > 解决方案 > 乌龟中是否有任何命令可以阻止乌龟进一步绘图?

问题描述

我正在创建一个基于 tkinter 的程序,它使用海龟图形来绘制图形。我有一个在屏幕上绘制正方形的按钮。但是当我在海龟画别的东西时按下那个按钮时,海龟开始画正方形,完成它后再次继续它的前一个任务。我不希望它继续以前的功能。我想在任何地方直接停止它,然后做它的新工作。这是示例代码,但这实际上不是我需要的。我试图简化问题。从乌龟进口 tkinter 作为 tk 进口 RawTurtle

def square():
    t.up()
    t.home()
    t.down()
    for i in range(4):
        t.fd(100)
        t.rt(90)

def drawseries():
    l = 2
    for i in range(100):
        t.fd(l)
        t.lt(90)
        l += 2

root = tk.Tk()
button = tk.Button(root,command = square, text = 'Draw Square')
button.pack()
canvas = tk.Canvas(root, width = 500, height = 500)
canvas.pack()

t = RawTurtle(canvas)
drawseries()

标签: python-3.xtkinter

解决方案


您总是drawseries()在文件末尾调用命令。当 for 循环完成后,它会drawseries()再次调用。


推荐阅读