如何提高RawTurtle的速度?

时间:2018-03-02 10:04:19

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

我目前在tkinter窗口中使用嵌入式乌龟画布。虽然直观,但我需要做的就是将我的乌龟设置为乌龟.RawTurtle(帆布),有一些功能不起作用,我无法弄清楚原因。< / p>

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

但我收到错误:

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

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

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

1 个答案:

答案 0 :(得分: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()