Python 3.6.4 Turtle如何清除已写入的文本?
解决Turtle库中文本清除的问题
嘿,作为Python新手遇到这个问题很正常,我来帮你搞定!你当前的代码只修改了背景色,但turtle.write()生成的文本是画布上的独立图形元素,背景色变化不会自动清除它,得用专门的方法来处理。
下面给你几种实用的解决方案:
方法1:用专属Turtle对象管理文本(推荐)
创建一个单独的Turtle来负责写文本,这样清除时只会影响这个Turtle的内容,不会干扰其他绘图操作:
import turtle import time wn = turtle.Screen() # 创建专门写文本的画笔,隐藏光标 text_pen = turtle.Turtle() text_pen.hideturtle() wn.bgcolor('purple') time.sleep(1) # 用专属画笔写文本 text_pen.write("Welcome", font=("Lucida Sans Unicode", 16, "normal")) time.sleep(1) # 清除这个画笔绘制的所有内容(也就是刚才的文本) text_pen.clear() wn.bgcolor('black') # 留几秒看效果,然后关闭窗口 time.sleep(2) wn.bye()
方法2:用undo()撤销最后一次操作
如果写文本是你最后执行的绘图操作,undo()可以直接撤销这个动作:
import turtle import time wn = turtle.Screen() wn.bgcolor('purple') time.sleep(1) turtle.write("Welcome", font=("Lucida Sans Unicode", 16, "normal")) time.sleep(1) # 撤销最后一次绘图操作(就是写文本的动作) turtle.undo() wn.bgcolor('black') time.sleep(2) wn.bye()
方法3:清除整个屏幕(慎用)
如果你的画布上只有这个文本,也可以用clearscreen()清除所有内容,但这个操作会重置Turtle的很多默认设置,比如画笔位置、颜色等,所以只适合简单场景:
import turtle import time wn = turtle.Screen() wn.bgcolor('purple') time.sleep(1) turtle.write("Welcome", font=("Lucida Sans Unicode", 16, "normal")) time.sleep(1) # 清除整个屏幕的所有绘图元素 turtle.clearscreen() wn.bgcolor('black') time.sleep(2) wn.bye()
总结一下,用专属Turtle管理文本是最灵活的方式,能精准控制要清除的内容,不会影响其他动画元素~
内容的提问来源于stack exchange,提问作者The Weird
相关产品推荐
相关产品推荐

