如何删除书面文字 - Python 3.6.4 Turtle

How to remove written text - Python 3.6.4 Turtle

我是 Python 3.6.4 的新手,我正在用乌龟创建动画。我无法从屏幕上删除一行书面文字。这是我的代码。

wn.bgcolor('purple')
time.sleep(1)
turtle.write("Welcome", font=("Lucida Sans Unicode", 16, "normal"))
time.sleep(1)
wn.bgcolor('black')

您可以查看网站https://docs.python.org/2/library/turtle.html了解更多

信息,但我的想法是你应该这样做

    turtle.clear()

那么你应该把整个程序去掉文本重做。

希望对您有所帮助。

你不能。

您可以 turtle.clear() 整个屏幕,然后重做您在编写文本之前所做的事情;你可以在你放置文本等的地方放一个白色方块,但是乌龟没有 "undoing"。

turtle 模块实际上只是将 像素 绘制到 canvas 上。没有关于完成了什么的内部信息,只有 canvas 现在在绘制的地方有不同的颜色。换句话说:就像你用笔在纸上画画一样:纸在笔触及的地方有不同的颜色,但要撤销你写的东西,你需要拿出橡皮擦擦擦那些地方你写了。或者,你可以拿一张新纸重新开始,省略你写的部分。在计算机中,您经常会这样做 - 绘图占用计算机的时间非常少,如果您将乌龟的速度设置为 "fastest" 并使其不可见,您甚至不会看到屏幕已被清除之间。

好消息是,如果您处于此时,您可能非常擅长使用 turtle – 因此实际习惯存储操作并稍后重做它们的方法可能是一个好点,这样您就可以实现我上面提到的 turtle.clear() 和重做方法。

对初学者友好的方法如下:

actions = []

actions.append( ( "pen down", ) )
actions.append( ( "go to" , 10 , 8) )
actions.append( ( "write", "funny text") ) 
actions.append( ( "go to" , 8 , 2) )
actions.append( ( "sleep", 5) )
actions.append( ( "clear", ) )

for action in actions:
    if action[0] == "pen down":
        turtle.pendown()
    elif action[0] == "go to":
        turtle.goto(action[1], action[2])
    elif action[0] == "sleep":
        time.sleep(action[1])
    elif action[0] == "clear":
……

你明白了。

然后,你可以通过简单的

删除假设的第三步(注意!Python 从 0 开始计算元素!)
del actions[2]

正如您想象的那样,有一个 "command list" 比每一步都尝试将命令字符串与一组命令进行比较更酷的方法,但是它们需要一些关于字典和可调用对象的知识,所以,我认为这将是一个不错的开始。

Turtle提供了一些组件来分别处理。

在你的情况下,它是一支笔,一个 RawTurtle class,可以自行绘制和清除。

您想看 RawTurtle class 吗?见https://docs.python.org/2/library/turtle.html#turtle.RawTurtle

中的解释

这是一些您可以轻松跟进的示例代码。

# First, make a turtle object
# Second, Call a .getpen() method from the instance you created before.
# Third, Write Some Text, in my case, it is 'helloworld'
# Finally, clear what you write on the screen. 

import turtle
sample = turtle.Turtle()
pen = sample.getpen()
# 'Helloworld" text will show up on your screen
pen.write("Helloworld") 
# 'Helloworld' will be disapeared as you type it on console.
pen.clear()

Python 3 乌龟可以撤消操作。你通常不需要 .clear() 因为它删除了乌龟所做的一切。通常,我使用专门的 turtle 来处理文本并将其停放在需要的地方。然后根据需要使用 .write().undo()

import time
from turtle import Turtle, Screen

screen = Screen()
turtle = Turtle(visible=False)

screen.bgcolor('purple')
time.sleep(1)
turtle.write('Welcome', align='center', font=('Lucida Sans Unicode', 32, 'normal'))
time.sleep(1)
turtle.undo()

screen.mainloop()