如何将Click事件绑定到Tkinter中的Canvas?

luk*_*ano 11 python tkinter python-2.7 tkinter-canvas

我只是想知道是否有任何可能的方法将Click事件绑定到Tkinter中的画布.

我希望能够在画布上的任何位置单击并让对象移动到它.我能够制作动作,但我还没有找到一种方法来在画布上绑定click事件.

Mal*_*imi 19

直接从事件的Effbot 教程中的示例中获取.

在这个例子中,我们使用框架小部件的bind方法将回调函数绑定到一个名为的事件.运行此程序并单击出现的窗口.每次单击时,都会在控制台窗口中打印"点击44 63"等消息.键盘事件将发送到当前拥有键盘焦点的窗口小部件.您可以使用focus_set方法将焦点移动到窗口小部件:

from Tkinter import *

root = Tk()

def key(event):
    print "pressed", repr(event.char)

def callback(event):
    print "clicked at", event.x, event.y

canvas= Canvas(root, width=100, height=100)
canvas.bind("<Key>", key)
canvas.bind("<Button-1>", callback)
canvas.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

  • 为什么`callback`函数需要`focus_set()`? (3认同)
  • 此外,OP要求在Canvas上绑定click事件,而不是在帧上绑定.如果您要我删除下来的投票,您应该修改您的代码并通知我. (2认同)