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

问题描述

我正在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>'和{{ 1}},从某种意义上讲是错误的,它不是您要缩进的内容,因为它指的是鼠标按钮1和2,而不是数字键1和2。要将其绑定到数字键1和2,应为:>

'<2>'

由于该函数在初始阶段未显示任何更改,因此它不会进行任何更改以进行测试,例如:

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

当您分别按下1和1时,您会注意到终端上印有1和2。

希望这可以解决问题,请让我知道是否有任何错误。

欢呼