我只是想知道是否有任何可能的方法可以使用 Tkinter 将点击事件绑定到画布。
我希望能够单击画布上的任意位置并将对象移动到它。我能够做出动作,但我还没有找到将点击绑定到画布的方法。
我只是想知道是否有任何可能的方法可以使用 Tkinter 将点击事件绑定到画布。
我希望能够单击画布上的任意位置并将对象移动到它。我能够做出动作,但我还没有找到将点击绑定到画布的方法。
直接取自 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()
更新:如果窗口/框架包含像具有键盘焦点的 Tkinter.Entry 小部件这样的小部件,则上面的示例不适用于“键”事件。放:
canvas.focus_set()
在“回调”函数中,将为画布小部件提供键盘焦点,并导致后续键盘事件调用“键”功能(直到其他一些小部件获得键盘焦点)。