¿Cómo adjunto enlaces de eventos a elementos en un canvas utilizando Tkinter?

Si estoy usando un canvas para mostrar datos y quiero que el usuario pueda hacer clic en varios elementos en el canvas para obtener más información o interactuar con él de alguna manera, ¿cuál es la mejor manera de hacerlo?

Buscando en línea puedo encontrar información sobre cómo vincular eventos a tags, pero eso parece ser más indirecto que lo que quiero. No quiero agrupar elementos con tags, sino tener llamadas a funciones específicas cuando el usuario hace clic en elementos específicos en el canvas.

Para interactuar con los objetos contenidos en un objeto Canvas, debe usar tag_bind () que tiene este formato: tag_bind(item, event=None, callback, add=None)

El parámetro del elemento puede ser una etiqueta o una identificación.

Aquí hay un ejemplo para ilustrar el concepto:

 from tkinter import * def onObjectClick(event): print('Got object click', event.x, event.y) print(event.widget.find_closest(event.x, event.y)) root = Tk() canv = Canvas(root, width=100, height=100) obj1Id = canv.create_line(0, 30, 100, 30, width=5, tags="obj1Tag") obj2Id = canv.create_text(50, 70, text='Click', tags='obj2Tag') canv.tag_bind(obj1Id, '', onObjectClick) canv.tag_bind('obj2Tag', '', onObjectClick) print('obj1Id: ', obj1Id) print('obj2Id: ', obj2Id) canv.pack() root.mainloop()