【问题标题】:How do I increase the speed of RawTurtle?如何提高 RawTurtle 的速度?
【发布时间】:2018-08-10 12:49:44
【问题描述】:

我目前在 tkinter 窗口中使用嵌入式海龟画布。虽然很直观,我需要做的就是将我的海龟设置为 turtle.RawTurtle(canvas),但有些函数不起作用,我不知道为什么。

t.clear();t.pu();t.speed(0);t.ht();t.tracer(0)

但我得到了错误:

AttributeError: 'RawTurtle' object has no attribute 'tracer'

尽管如此,许多其他功能仍然有效,例如 clear、penup、speed 和 hideturtle。

有什么方法可以在绘图完成之前禁用屏幕更新,然后使用 RawTurtle 手动更新画布?

【问题讨论】:

    标签: python-3.x turtle-graphics tkinter-canvas


    【解决方案1】:

    tracer() 方法是海龟屏幕的方法,而不是海龟本身。要访问它,当嵌入在 tkinter 窗口下时,将画布包裹在海龟屏幕中:

    screen = turtle.TurtleScreen(canvas)
    
    t = turtle.RawTurtle(screen)
    

    这应该使您可以访问各种屏幕方法。然后您应该能够使用screen.tracer(0) 关闭绘图更新并使用screen.update() 显示完成的绘图。一个更完整的例子:

    import tkinter as tk
    import turtle
    
    root = tk.Tk()
    
    canvas = turtle.ScrolledCanvas(root)
    canvas.pack(side=tk.LEFT)
    
    screen = turtle.TurtleScreen(canvas)
    
    t = turtle.RawTurtle(screen)
    t.hideturtle()
    # t.speed('fastest')
    
    screen.tracer(0)
    
    t.penup()
    t.sety(-100)
    t.pendown()
    t.circle(100)
    
    screen.update()
    screen.mainloop()
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多