为什么我不能改变我的乌龟的宽度?

Why can't I change the width of my turtle?

我正在用 Tkinter 和 turtle 制作一个应用程序,我想通过数字按键来改变我的 turtle 的宽度。因此,当我输入 2 时,它应该将用户宽度更改为 2,当我输入 1 时,它应该将宽度更改为 1。但是,当我按我的键上的数字时它不起作用?

示例代码如下:

from tkinter import *
from tkinter import filedialog
import turtle
import time


# Screen
screen = Tk()
screen.geometry("{0}x{1}+0+0".format(screen.winfo_screenwidth(), screen.winfo_screenheight()))
screen.title("Example Code")
screen.configure(bg="Gray")
# Canvas
canvas = Canvas(master=screen, width="666", height="666")
canvas.place(relx=0.5, rely=0.5, anchor=CENTER)


# Making The User
user = turtle.RawTurtle(canvas)
user.shape("triangle")
user.setheading(90)
user.speed(0)
user.color("black")
user.down()
user.goto(0, 0)
userspeed = 15
user.width(1)


# Width Functions
def width_one(event=None):
    user.width(1)


def width_two(event=None):
    user.width(2)

canvas.focus_set()
canvas.bind('<1>', width_one)
canvas.bind('<2>', width_two)




screen.mainloop()

好吧,问题似乎出在功能上,“它在初始状态下没有任何变化”,并且键绑定也是错误的'<1>''<2>',从某种意义上说是错误的,它不是你缩进的,因为它指的是鼠标按钮 1 和 2 而不是数字键 1 和 2。要将它绑定到数字键 1 和 2,它应该是:

canvas.focus_set()
canvas.bind('1', width_one)
canvas.bind('2', width_two)

由于函数在初始阶段没有任何变化,所以不会做任何变化,测试一下,说:

# Completed Version
canvas.focus_set()
canvas.bind('1', lambda event:print('You pressed 1'))
canvas.bind('2', lambda event:print('You pressed 2'))

当您分别按 1 和 时,您会注意到终端中打印了 1 和 2

希望这解决了问题,如果有任何错误请告诉我。

干杯