The following is the code to display an image and am trying to drag it to desired location. Once i click on the image the relavnt event method is not getting called and there is no error message displayed. please look into the issue
import Tkinter as tk from Tkinter import * from PIL import ImageTk, Image class Example(tk.Frame): def __init__(self, parent): tk.Frame.__init__(self, parent) # create a canvas self.canvas = tk.Canvas(width=400, height=400) self.canvas.pack(fill="both", expand=True) # this data is used to keep track of an # item being dragged self._drag_data1 = {"x": 0, "y": 0, "item1": None} startframe = tk.Frame(root) canvas = tk.Canvas(startframe,width=1280,height=720) startframe.pack() canvas.pack() one = tk.PhotoImage(file=r'images/test1.gif') root.one = one # to prevent the image garbage collected. canvas.create_image((0,0), image=one, anchor='nw',tags="img1") self.canvas.tag_bind("img1", "<1>", self.on_token_press1) self.canvas.tag_bind("img1", "<1>", self.on_token_release1) self.canvas.tag_bind("token", "<B1-Motion>", self.on_token_motion1) def on_token_press1(self, event): print("sss") # record the item and its location self._drag_data1["item1"] = self.canvas.find_closest(event.x, event.y)[0] self._drag_data1["x"] = event.x self._drag_data1["y"] = event.y def on_token_release1(self, event): # reset the drag information self._drag_data1["item1"] = None self._drag_data1["x"] = 0 self._drag_data1["y"] = 0 def on_token_motion1(self, event): '''Handle dragging of an object''' # compute how much the mouse has moved delta_x = event.x - self._drag_data1["x"] delta_y = event.y - self._drag_data1["y"] # move the object the appropriate amount self.canvas.move(self._drag_data1["item1"], delta_x, delta_y) # record the new position self._drag_data1["x"] = event.x self._drag_data1["y"] = event.y if __name__ == "__main__": root = tk.Tk() Example(root).pack(fill="both", expand=True) root.mainloop()