Python 通过按下另一个define in tkinter(定义输入)按钮重置define in a(定义输入)按钮?

Python 通过按下另一个define in tkinter(定义输入)按钮重置define in a(定义输入)按钮?,python,tkinter,Python,Tkinter,我试图通过重置菜单按钮的定义功能来创建一个键盘绑定程序 def img1(): def motion(e): imgopen=ImageTk.PhotoImage(Image.open("first")) imglbl=canvas.creat_image(e.x, e.y, image=imgopen) def release(e): imgopen=ImageTk.PhotoImage(Image.open(

我试图通过重置菜单按钮的定义功能来创建一个键盘绑定程序

def img1():
    def motion(e):
        imgopen=ImageTk.PhotoImage(Image.open("first"))
        imglbl=canvas.creat_image(e.x, e.y, image=imgopen)
    def release(e):
        imgopen=ImageTk.PhotoImage(Image.open("first"))
        imglbl=canvas.create_image(e.x, e.y, image=imgopen)
    canvas.bind("<B1-Motion>", motion)
    canvas.bind("<ButtonRelease-1>", release)
def line():
    canvas.bind("<B1-Motion>", motion)
    canvas.bind("<ButtonRelease-1>", release)
    canvas.bind("<ButtonPress-1>", press)
def press(e):
    old["x"] = e.x
    old["y"] = e.y
    line.append(canvas.create_line(old["x"],old["y"], fill=black))
def motion(e):
    old["x"] = e.x
    old["x"] = e.x
    canvas.old(line[-1],old["x"],old["y"])
def release(1):
    ple=[]
    ple.append(old["x"]);ple.append(old["y"])
    final.append(ple)

imgbtn = Button(root, text="Image", command=img1).pack()
linebtn = Button(root, text="Line", command=line).pack()
def img1():
def动议(e):
imgopen=ImageTk.PhotoImage(Image.open(“第一”))
imglbl=canvas.create_image(e.x,e.y,image=imgopen)
def释放(e):
imgopen=ImageTk.PhotoImage(Image.open(“第一”))
imglbl=canvas.create_image(e.x,e.y,image=imgopen)
canvas.bind(“,运动)
canvas.bind(“,release)
定义行():
canvas.bind(“,运动)
canvas.bind(“,release)
canvas.bind(“,按)
def压力(e):
旧[“x”]=e.x
旧的[“y”]=e.y
line.append(canvas.create_行(旧[“x”]、旧[“y”]、填充=黑色))
def动议(e):
旧[“x”]=e.x
旧[“x”]=e.x
canvas.old(行[-1]、old[“x”]、old[“y”])
def释放(1):
ple=[]
附加(旧的[“x”]);ple.append(旧[“y”])
最终。附加(ple)
imgbtn=按钮(root,text=“Image”,command=img1).pack()
linebtn=按钮(root,text=“Line”,command=Line).pack()
这是我的示例代码。如果我单击图像按钮,我可以拖动我放置的图像,当我单击线条按钮时,如果我按下、拖动、释放按钮,图像仍然可以随着线条移动。
我想通过使用键盘绑定(即转义)重置定义。

我认为您在
def motion
def release
中缺少
canvas.tk_img=imgopen
。您还拼错了画布。创建图像还有,为什么有两个函数名为
motion
release
?另外,为什么在此处将
1
作为变量名:
def release(1)
?@用于运动和释放的Lizzard两个按钮有不同的方法。第一个动作和释放是为了让图像能够在画布上移动,第二个动作和释放是为了创建线条。但是如果我按下图像按钮,移动完图像,并且我想要创建一条线,那么图像仍然会移动。如果我绘制一条线,请相应地重命名您的函数。此外,
imgopen
超出范围,因此图像甚至不应显示在屏幕上。