Introduction
Basic Widgets
Toplevel Widgets
Geometry Management
Binding Functions
Working with Images in Tkinter
Tkinter Advance
Applications and Projects
The Canvas
widget in tkinter
is a versatile component that can be used to draw various shapes, lines, and even custom widgets. A unique feature of the Canvas
widget is its ability to move objects dynamically.
This tutorial will explain how to move objects on the Canvas
widget using the move()
method.
Canvas.move()
in tkinter
Tutorial:1. Import Required Libraries:
import tkinter as tk
2. Initialize Main Application Window:
root = tk.Tk() root.title("Canvas Move Tutorial")
3. Create the Canvas Widget:
canvas = tk.Canvas(root, bg='white', width=400, height=400) canvas.pack(pady=20)
4. Draw an Object on Canvas:
We'll create a blue rectangle to demonstrate the movement:
rectangle = canvas.create_rectangle(50, 50, 150, 150, fill='blue')
5. Create a Function to Move the Object:
The move()
method requires three arguments:
dx
).dy
).For this example, we'll move the rectangle 10 pixels to the right and 10 pixels down when the button is clicked:
def move_rectangle(): canvas.move(rectangle, 10, 10)
6. Add a Button to Trigger Movement:
move_btn = tk.Button(root, text="Move Rectangle", command=move_rectangle) move_btn.pack(pady=20)
7. Mainloop to Run the Application:
root.mainloop()
Complete Code:
import tkinter as tk def move_rectangle(): canvas.move(rectangle, 10, 10) root = tk.Tk() root.title("Canvas Move Tutorial") canvas = tk.Canvas(root, bg='white', width=400, height=400) canvas.pack(pady=20) rectangle = canvas.create_rectangle(50, 50, 150, 150, fill='blue') move_btn = tk.Button(root, text="Move Rectangle", command=move_rectangle) move_btn.pack(pady=20) root.mainloop()
In this tutorial, we explored how to move objects on the Canvas
widget using the move()
method. This functionality can be expanded upon for various applications, such as game development, animations, or interactive UI elements.
Python Tkinter move objects example:
Canvas
widget provides the move()
method to change the position of drawn objects on the canvas.import tkinter as tk def move_rectangle(): canvas.move(rectangle, 10, 0) root = tk.Tk() canvas = tk.Canvas(root, width=200, height=100) canvas.pack() # Create a rectangle rectangle = canvas.create_rectangle(10, 10, 50, 50, fill="blue") # Button to move the rectangle button = tk.Button(root, text="Move Rectangle", command=move_rectangle) button.pack(pady=10) root.mainloop()
Animating objects using Canvas.move() in Tkinter:
Canvas.move()
method with a loop or a timer to create animations by changing the position of objects over time.import tkinter as tk def animate_rectangle(): canvas.move(rectangle, 5, 0) root.after(50, animate_rectangle) # Repeat after 50 milliseconds root = tk.Tk() canvas = tk.Canvas(root, width=200, height=100) canvas.pack() # Create a rectangle rectangle = canvas.create_rectangle(10, 10, 50, 50, fill="blue") # Start animation animate_rectangle() root.mainloop()
Handling keyboard or mouse events for movement in Tkinter:
Canvas.move()
.import tkinter as tk def move_left(event): canvas.move(rectangle, -10, 0) def move_right(event): canvas.move(rectangle, 10, 0) root = tk.Tk() canvas = tk.Canvas(root, width=200, height=100) canvas.pack() # Create a rectangle rectangle = canvas.create_rectangle(10, 10, 50, 50, fill="blue") # Bind arrow keys for movement canvas.bind("<Left>", move_left) canvas.bind("<Right>", move_right) root.mainloop()