Python龟:创建一个重做函数

时间:2016-07-17 10:41:54

标签: python tkinter turtle-graphics undo-redo

我知道如何使用turtle.undo()撤消python龟中的绘图步骤。但是我如何制作重做功能呢?

from tkinter import *
...#Just some other things

def undoStep():
    turtle.undo()

def redoStep():
    #What to put here


root.mainloop()

1 个答案:

答案 0 :(得分:0)

要制作redo功能,您需要在列表actions中跟踪每个操作。您还需要一个变量i,告诉您该列表中的位置,每次拨打undoStep时,请将i减一。然后redoStep必须执行操作actions[i]。这是代码:

import turtle

actions = []
i = 0

def doStep(function, *args):
    global i
    actions.append((function, *args))
    i += 1
    function(*args)


def undoStep():
    global i
    if i > 0:
        i -= 1
        turtle.undo()

def redoStep():
    global i
    if i >= 0 and i < len(actions):
        function, *args = actions[i]
        function(*args)
        i += 1