Tkinter - How to put an outline on a canvas text

TkinterPythonGUI-Programming

The create_text method of Canvas widget in Tkinter doesn't have an attribute like "outline" or "border" to set an outline around a text object. So, to put an outline on a canvas text, you can follow the steps given below −

Steps −

  • Import the required libraries and create an instance of tkinter frame.

  • Set the size of the frame using root.geometry method.

  • Create a Canvas widget and set its height and width. Also, set its background color with background="white".

  • Next, create a text object inside the Canvas using create_text() method. Set the font and color of the text as shown in the example.

  • Get the bounding box (bbox) of the text item.

  • Use the bbox data to create a rectangle with an outline.

  • Finally, run the mainloop of the application window.

Example

# Import tkinter library
from tkinter import *

# Create an instance of tkinter frame or window
root = Tk()

# Set the geometry of tkinter frame
root.geometry("700x350")

# Create a Canvas
canvas = Canvas(root, background="white")
canvas.pack(expand=True)

# Create text inside the Canvas
text = canvas.create_text(175, 50, text="Text inside the Canvas", font="Calibri, 20", fill="green")

# Get the bounding box of text
bbox = canvas.bbox(text)

# Outline the canvas text
canvas.create_rectangle(bbox, outline="blue")

root.mainloop()

Output

On execution, it will produce the following output −

raja
Published on 26-Oct-2021 13:07:32

Advertisements