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

Tkinter 캔버스에서 점선을 실선으로 변경하는 방법

캔버스(Canvas) 위젯은 Tkinter 애플리케이션에서 그래픽을 표현할 때 가장 널리 사용되는 위젯 중 하나입니다. 캔버스 위젯에 선을 그리려면 내장 라이브러리 메서드인 create_line(x1, y1, x2, y2, **options)을 사용하면 됩니다.

또한 dash 속성을 이용해 선의 스타일을 자유롭게 지정할 수 있습니다. 점선으로 그려진 선을 실행 중에 동적으로 실선(solid)으로 바꾸려면 itemconfig() 또는 configure() 메서드를 활용하면 됩니다. 핵심은 dash 속성에 빈 값을 전달하는 것인데, 이렇게 하면 점선 패턴이 제거되어 선이 실선으로 변경됩니다.

예제 코드

다음 예제를 통해 실제 동작 과정을 살펴보겠습니다.

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# Tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

def update_line():
    # dash 속성에 빈 값을 전달하여 점선을 실선으로 변경
    canvas.itemconfig(line, dash=())

# 캔버스 위젯 생성
canvas = Canvas(win, width=400, height=300)
canvas.pack()

# 점선 생성 후 아이템 ID 저장
line = canvas.create_line(300, 30, 300, 150, dash=(4, 2), width=5)

# 선의 dash 속성을 변경하는 버튼 생성
btn = ttk.Button(win, text="변경", command=update_line)
btn.pack(pady=10)

win.mainloop()

코드 설명

위 예제에서는 먼저 create_line()으로 점선(dash=(4, 2))을 생성하고, 반환된 아이템 ID를 line 변수에 저장합니다. 이후 "변경" 버튼을 클릭하면 update_line() 함수가 호출되어 itemconfig() 메서드가 해당 선의 dash 속성을 빈 값으로 설정합니다. 그 결과 화면의 점선이 즉시 실선으로 바뀌게 됩니다.

실행 결과

위 코드를 실행하면 캔버스 위젯 안에 점선이 표시됩니다.

Tkinter 캔버스에서 점선을 실선으로 변경하는 방법

이후 "변경" 버튼을 클릭하면 점선이 실선으로 전환되는 것을 확인할 수 있습니다. 이처럼 itemconfig()를 사용하면 캔버스에 이미 그려진 도형의 다양한 속성(색상, 굵기, 선 스타일 등)을 언제든지 동적으로 수정할 수 있습니다.