much like we did for the text widgetit is also possible to bind events for one or more specific objects drawn on canvas with its tag_bind method this call accepts either tag name string or an object id in its first argument for instanceyou can register different callback handler for mouse clicks on every drawn item or on any in group of drawn and tagged itemsrather than for the entire canvas at large example - binds double-click handler on both the canvas itself and on two specific text items within itto illustrate the interfaces it generates figure - when run example - pp \gui\tour\canvas-bind py bind events on both canvas and its items from tkinter import def oncanvasclick(event)print('got canvas click'event xevent yevent widgetdef onobjectclick(event)print('got object click'event xevent yevent widgetend='print(event widget find_closest(event xevent )find text object' id root tk(canv canvas(rootwidth= height= obj canv create_text( text='click me one'obj canv create_text( text='click me two'canv bind(''oncanvasclickcanv tag_bind(obj ''onobjectclickcanv tag_bind(obj ''onobjectclickcanv pack(root mainloop(bind to whole canvas bind to drawn item tag works here too figure - canvas-bind window object ids are passed to tag_bind herebut tag name string would work tooand would allow you to associate multiple canvas objects as group for event purposes when you click outside the text items in this script' windowthe canvas event handler fireswhen either text item is clickedboth the canvas and the text object handlers fire here is the stdout result after clicking on the canvas twice and on each text item oncecanvas