# move_dot.py3 moving dot with direction arrow keys # imports all forms of tkinter and tkinter files. ttk from tkinter import * from tkinter.ttk import * class GFG: def __init__ (self, master = None ): self.master = master # slow default movement in the x,y direction self.x = 1 self.y = 1 # canvas object for creating the shape self.canvas = Canvas (master) # create a dot self.rectangle=self.canvas.create_oval(5, 5, 30, 30, fill="red") self.text=self.canvas.create_text(200, 20, text='use arrow keys to change direction', fill='black') self.canvas.pack () # call the class move method in # move oval self.movement () # end __init__ def movement(self ): # The move () method is called here # This moves the object in the x, y direction self.canvas.move(self.rectangle, self.x, self.y) self.canvas.after(200, self.movement) # 200 milliseconds # end movement # to move in negative x direction def left(self, event): print(event.keysym) self . x = - 5 self . y = 0 # end left # to move in the positive x direction def right(self, event): print (event.keysym) self . x = 5 self . y = 0 # end right # for positive y direction def up(self, event): print (event.keysym) self . x = 0 self . y = - 5 # end up # to move in negative y direction def down(self, event): print(event.keysym) self.x = 0 self.y = 5 # end down # end class GFG if __name__ == "__main__" : # Tk class object responsible for creating # Tkinter top-level window # print("move_dot.py3 running press arrow keys") master = Tk() master.title("move_dot.py3") # c=Canvas(master, width=400, height=400, bg='white') # ??? # c.create_text(200, 20, text='use arrow keys to change direction', fill='black') gfg = GFG(master) # This will bind the arrow keys in tkinter # toplevel that will move the object around master.bind("", lambda e: gfg.left(e)) master.bind("", lambda e: gfg.right(e)) master.bind("", lambda e: gfg.up(e)) master.bind("", lambda e: gfg.down(e)) # Endless loop is interrupted only by interruption print("running mainloop") mainloop () print("move_dot.py3 finished") # end move_dot.py3