问题描述
我正在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。
希望这可以解决问题,请让我知道是否有任何错误。
欢呼