Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我如何提高海龟的速度?_Python 3.x_Turtle Graphics_Tkinter Canvas - Fatal编程技术网

Python 3.x 我如何提高海龟的速度?

Python 3.x 我如何提高海龟的速度?,python-3.x,turtle-graphics,tkinter-canvas,Python 3.x,Turtle Graphics,Tkinter Canvas,我目前正在tkinter窗口中使用嵌入式海龟画布。直观地说,我所需要做的就是将我的turtle设置为turtle.RawTurtle(canvas),但有些函数不起作用,我不知道为什么 t.clear();t.pu();t.speed(0);t.ht();t.tracer(0) 但我得到了一个错误: AttributeError: 'RawTurtle' object has no attribute 'tracer' 尽管如此,许多其他功能仍然可以工作,例如clear、penup、spee

我目前正在tkinter窗口中使用嵌入式海龟画布。直观地说,我所需要做的就是将我的turtle设置为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手动更新画布?

tracer()方法是turtle的屏幕方法,而不是turtle本身。若要访问它,当嵌入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()