【问题标题】:turtle delete writing on Screen and Rewrite海龟删除屏幕上的文字并重写
【发布时间】:2016-01-16 03:27:05
【问题描述】:

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

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

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

我也尝试在文本上画一个白色方块,但这不起作用。

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

【问题讨论】:

    标签: python turtle-graphics


    【解决方案1】:

    您也可以清除这只乌龟,而不是清除整个屏幕。不确定这是否符合您的要求,但您可能想尝试一下。我添加了第二只海龟,以证明屏幕的其余部分不受影响。

    import turtle
    import time
    
    name = "first text"
    
    t1 = turtle.Turtle()
    t1.setposition(0, 0)
    t1.write(name, font=("Arial", 11, "normal"), align="center")
    
    t2 = turtle.Turtle()
    t2.setposition(0, 30)
    t2.write(name, font=("Arial", 11, "normal"), align="center")
    
    time.sleep(1)
    name = "new value for name 1"
    t1.clear()
    t1.write(name, font=("Arial", 11, "normal"), align="center")
    

    【讨论】:

      【解决方案2】:

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

      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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-03
        相关资源
        最近更新 更多