DEV Community

Cover image for How to Draw Shapes on a Tkinter Canvas in Python in 2025?
Negrito đź‘Ś
Negrito đź‘Ś

Posted on

2 1 1 1

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.

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

đź‘‹ Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay