如何在 Tkinter 中将点击事件绑定到 Canvas? [关闭]

2023-12-12

我只是想知道是否有任何可能的方法使用 Tkinter 将单击事件绑定到画布。

我希望能够单击画布上的任意位置并将对象移动到其中。我能够做出动作,但我还没有找到将点击绑定到画布的方法。


直接取自 Effbot 的示例tutorial关于事件。

在此示例中,我们使用框架小部件的绑定方法将回调函数绑定到名为 的事件。运行该程序并单击出现的窗口。每次单击时,控制台窗口都会打印一条类似“clicked at 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()

Update:如果窗口/框架包含像 Tkinter.Entry 小部件这样具有键盘焦点的小部件,则上面的示例将不适用于“按键”事件。推杆:

canvas.focus_set()

在“回调”函数中将为画布小部件提供键盘焦点,并导致后续键盘事件调用“键”函数(直到其他小部件获取键盘焦点)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Tkinter 中将点击事件绑定到 Canvas? [关闭] 的相关文章

随机推荐