Так же, как вы использовали RawTurtle
вместо Turtle
, когда вы используете черепаху внедренную в окне tkinter, вам нужно использовать TurtleScreen
вместо Screen
, если вы хотите методы он обеспечивает:
import tkinter as tk
from turtle import TurtleScreen, RawTurtle
window = tk.Tk()
window.geometry("750x500")
window.resizable(0, 0)
canvas = tk.Canvas(master=window, width=500, height=500)
canvas.pack()
screen = TurtleScreen(canvas)
turtle = RawTurtle(screen)
def k1():
turtle.forward(1)
def k2():
turtle.left(1)
def k3():
turtle.right(1)
def k4():
turtle.back(1)
screen.onkey(k1, "Up")
screen.onkey(k2, "Left")
screen.onkey(k3, "Right")
screen.onkey(k4, "Down")
screen.listen()
screen.mainloop()
Не используйте автономный turtle's Screen
в этой ситуации, поскольку он потенциально может создать второе окно tkinter root, что позже приведет к незначительным ошибкам ( как изображения не загружаются.)