Tkinter의 Canvas 위젯에서 제공하는 create_text 메서드는 텍스트 객체 주위에 윤곽선을 설정할 수 있는 "outline"이나 "border" 같은 속성을 지원하지 않습니다. 따라서 캔버스에 그린 텍스트에 윤곽선을 추가하려면 아래 단계를 따라야 합니다.
구현 단계
필요한 라이브러리를 가져오고 tkinter 프레임(윈도우)의 인스턴스를 생성합니다.
root.geometry 메서드를 사용해 프레임의 크기를 설정합니다.
Canvas 위젯을 생성하고 높이와 너비를 지정한 뒤, background="white"로 배경색을 흰색으로 설정합니다.
create_text() 메서드를 사용해 캔버스 안에 텍스트 객체를 생성합니다. 예제에서 보여주는 것처럼 폰트와 색상도 함께 지정합니다.
텍스트 항목의 바운딩 박스(bbox, 경계 상자) 정보를 가져옵니다.
가져온 bbox 데이터를 활용해 윤곽선이 있는 사각형을 생성합니다.
마지막으로 애플리케이션 창의 mainloop를 실행합니다.
예제 코드
# tkinter 라이브러리 임포트
from tkinter import *
# tkinter 프레임 또는 윈도우 인스턴스 생성
root = Tk()
# tkinter 프레임의 크기 설정
root.geometry("700x350")
# 캔버스 생성
canvas = Canvas(root, background="white")
canvas.pack(expand=True)
# 캔버스 안에 텍스트 생성
text = canvas.create_text(175, 50, text="Text inside the Canvas", font="Calibri, 20", fill="green")
# 텍스트의 바운딩 박스(경계 좌표) 가져오기
bbox = canvas.bbox(text)
# 캔버스 텍스트 주위에 윤곽선 그리기
canvas.create_rectangle(bbox, outline="blue")
root.mainloop()실행 결과
코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

추가 팁
create_rectangle 메서드에서는 outline 외에도 width 매개변수로 윤곽선의 두께를 조절할 수 있고, dash 매개변수를 사용하면 점선 스타일의 테두리를 만들 수 있습니다. 예를 들어 canvas.create_rectangle(bbox, outline="red", width=2)처럼 작성하면 더 두껍고 눈에 잘 띄는 테두리를 얻을 수 있습니다.