python - turtle 删除屏幕上的文字并重写

标签 python turtle-graphics

在我的代码中,在任何函数下,我都会:

t = turtle.Turtle()
t.write(name, font=("Arial", 11, "normal"), align="center")

但是当我改变屏幕时,我想删除这个文本,并在其他地方重写它。我知道清除整个屏幕的“简单方法”。但有没有办法只删除文字呢?

我还尝试在文本上绘制白色方 block ,但这不起作用。

有人尝试过不同的方法吗?

最佳答案

起初,我认为这只是回到相同位置并使用相同字体但使用白色墨水重写相同文本的简单问题。令人惊讶的是,这留下了黑色污迹,并且用白色覆盖了大约 10 次才使其美观。然而,我找到了一个更好的解决方案,使用一个单独的 turtle 来编写您想要处理的文本,并在将文本重写到新位置之前清除该 turtle ,屏幕上的其他所有内容(用不同的 turtle 绘制)仍然保留:

import turtle
import time

def erasableWrite(tortoise, name, font, align, reuse=None):
    eraser = turtle.Turtle() if reuse is None else reuse
    eraser.hideturtle()
    eraser.up()
    eraser.setposition(tortoise.position())
    eraser.write(name, font=font, align=align)
    return eraser

t = turtle.Turtle()
t.hideturtle()
t.up()

t.goto(-100,100)
t.write("permanent", font=("Arial", 20, "normal"), align="center")

t.goto(100,100)
eraseble = erasableWrite(t, "erasable", font=("Arial", 20, "normal"), align="center")

time.sleep(1)

eraseble.clear()

t.goto(-100, -100)
erasable = erasableWrite(t, "erasable", font=("Arial", 20, "normal"), align="center", reuse=eraseble)

turtle.done()

关于python - turtle 删除屏幕上的文字并重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823206/

相关文章:

python - 我可以将函数作为参数发送到具有多处理功能的所有进程吗?

python - 如何在 Python 的 turtle 图形中创建旋转文本?

graphics - 如何在不使用数据和函数的情况下绘制一些图形? ( turtle 模拟)

python - Python 中网格数据的 PolarColor map 绘图

python - Python 类中是否有 “private” 变量?

尝试下载文件时,Python 请求抛出 Connection Broken : ChunkedEncodingError with http. client.IncompleteRead

python - Tkinter Filedialog.askopenfilename 迭代

Python Tkinter postscript 错误大小导出

python - 画圆极其不一致?

python - TypeError: * 之后的类型对象参数必须是可迭代的,而不是 int