微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 中检测用鼠标单击的对象 ID 的最佳方法是什么?

如何解决Python 中检测用鼠标单击的对象 ID 的最佳方法是什么?

我想问一下 Python 中与使用函数创建的画布对象交互的最佳方式是什么。
我的示例代码

import tkinter
window = tkinter.Tk()
canvas = tkinter.Canvas(width=1000,height=600,bg="black")
canvas.pack()

def rectangle(x,y):
    canvas.create_rectangle(x,y,x + 5,y + 5,fill="white")

rect1 = rectangle(20,50)
rect2 = rectangle(180,30)
rect3 = rectangle(698,322)
rect4 = rectangle(900,66)
rect5 = rectangle(10,506)
rect6 = rectangle(208,455)

检测用鼠标单击的对象的 ID 然后将这些 ID 作为另一个函数中的参数的最佳方法是什么?谢谢你的回答。

解决方法

使用tag_bind

import tkinter
from functools import partial

window = tkinter.Tk()
canvas = tkinter.Canvas(width=1000,height=600,bg="black")
canvas.pack()

def on_click(item,event=None):
    print(f"Item id {item} was clicked!")

def rectangle(x,y):
    item_id = canvas.create_rectangle(x,y,x + 5,y + 5,fill="white")
    canvas.tag_bind(item_id,'<Button-1>',partial(on_click,item_id))

rect1 = rectangle(20,50)
rect2 = rectangle(180,30)
rect3 = rectangle(698,322)
rect4 = rectangle(900,66)
rect5 = rectangle(10,506)
rect6 = rectangle(208,455)

window.mainloop()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。