Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 캔버스 텍스트에 윤곽선(테두리) 넣는 방법

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()

실행 결과

코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Tkinter 캔버스 텍스트에 윤곽선(테두리) 넣는 방법

추가 팁

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