DEV Community

Cover image for How to Draw Shapes on a Tkinter Canvas in Python in 2025?
Negrito 👌
Negrito 👌

Posted on

How to Draw Shapes on a Tkinter Canvas in Python in 2025?

If you're delving into GUI programming with Python, mastering the Tkinter Canvas module is essential. With its flexibility and ease of use, the Tkinter Canvas is unparalleled for creating interactive graphics and drawing shapes. By 2025, Python's Tkinter remains a fundamental tool for these tasks, ensuring robust performance and an active community for support. This article will guide you through drawing shapes on a Tkinter Canvas in Python.

Why Use Tkinter Canvas?

Tkinter Canvas provides a widget for drawing graphics, creating custom widgets, and generating dynamic UIs. Here’s why you should consider it:

  • Ease of Use: Its simple API allows for quick UI prototyping.
  • Flexibility: Capable of drawing a variety of shapes including ovals, rectangles, and more.
  • Compatibility: Cross-platform support ensures your program runs on Windows, macOS, and Linux.

Drawing Shapes on Tkinter Canvas

Let’s explore how to draw basic shapes like rectangles, ovals, and lines. By leveraging Tkinter’s capabilities, drawing on the canvas is straightforward.

Step-by-Step Guide

  1. Setup Tkinter Environment

Ensure you have Python installed, with Tkinter included. Most Python distributions come with Tkinter by default.

import tkinter as tk
Enter fullscreen mode Exit fullscreen mode
  1. Create a Tkinter Root Window

    Begin by initializing a root window, the main window where your canvas will reside.

root = tk.Tk()
root.title("Tkinter Canvas Drawing")
Enter fullscreen mode Exit fullscreen mode
  1. Initialize the Tkinter Canvas

Create the canvas where you’ll draw the shapes.

canvas = tk.Canvas(root, width=400, height=400, bg='white')
canvas.pack()
Enter fullscreen mode Exit fullscreen mode
  1. Draw Shapes
  • Rectangle: Use the create_rectangle() method, specifying the coordinates for opposite corners.
canvas.create_rectangle(50, 50, 150, 150, outline="black", fill="blue")
Enter fullscreen mode Exit fullscreen mode
  • Oval: Draw shapes with create_oval(), providing the bounding box coordinates.
canvas.create_oval(200, 50, 300, 150, outline="black", fill="red")
Enter fullscreen mode Exit fullscreen mode
  • Line: Utilize create_line() for connecting points in straight lines.
canvas.create_line(0, 0, 400, 400, fill="green", width=3)
Enter fullscreen mode Exit fullscreen mode
  1. Run the Tkinter Main Loop

    Finally, execute the application loop.

 root.mainloop()
Enter fullscreen mode Exit fullscreen mode

Further Reading and Resources

For more advanced functionalities, these resources will expand your understanding:

Additionally, refer to this detailed guide on substring coloring in Tkinter, and explore solutions for text overlap issues here.

Tkinter Canvas continues to be a powerful tool for Python GUI development, as it evolves with new features even into 2025 and beyond. By familiarizing yourself with these drawing techniques, you're well on your way to creating dynamic and visually captivating applications.

Top comments (0)