캔버스(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 속성을 빈 값으로 설정합니다. 그 결과 화면의 점선이 즉시 실선으로 바뀌게 됩니다.
실행 결과
위 코드를 실행하면 캔버스 위젯 안에 점선이 표시됩니다.

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