我有一个简单的程序,其中一些按钮不是由 Tkinter 自己制作的。我只是用canvas.create_rectangle 之类的东西制作了它们。但问题是:按钮可以移动。我可以这样做:
if event.x > c.coords(button)[0] and event.y > c.coords(button)[1] \
and event.x < c.coords(button)[2] and event.y < c.coords(button)[3]:
::line of code::
但是有没有更短的方法呢?谢谢!
最佳答案
您可以使用标签绑定(bind):canvas.tag_bind(<tag>, '<1>', callback)
,只需替换 <tag>
通过按钮的项目 ID。这是一个例子:
import tkinter as tk
def on_click(event):
print('click')
canvas.move(button1, 10, 5)
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
button1 = canvas.create_rectangle(10, 10, 50, 50, fill='red')
canvas.tag_bind(button1, '<1>', on_click)
root.mainloop()
关于python - 我如何查看单击了哪个 tkinter Canvas 形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49497117/