Tkinter의 Canvas(캔버스) 위젯은 텍스트, 이미지, 도형 등 다양한 시각적 요소를 화면에 자유롭게 그릴 수 있게 해주는 강력한 도구입니다. 그런데 프로그램 실행 중에 이미 그려둔 캔버스 항목(item)의 속성을 변경해야 하는 경우가 종종 발생합니다. 이럴 때 tkinter에서 제공하는 itemconfig(**options) 메서드를 사용하면 간단하게 해결할 수 있습니다. 이 메서드를 활용하면 캔버스 항목의 색상, 굵기, 크기 등 다양한 속성과 속성값을 동적으로 재구성할 수 있습니다.
예를 들어, 캔버스 위젯 안에 선(line)을 하나 그렸다면 itemconfig() 메서드를 호출하여 해당 선의 색상이나 두께를 언제든지 변경할 수 있습니다. 아래 예제 코드를 통해 실제 동작 과정을 살펴보겠습니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
# 버튼 클릭 시 선의 색상을 변경하는 함수 정의
def on_click():
canvas.itemconfig(line, fill="green")
# 캔버스 위젯 생성
canvas = Canvas(win, width=500, height=300)
canvas.pack()
# 캔버스 위젯에 선 추가
line = canvas.create_line(100, 200, 200, 35, fill="yellow", width=5)
# 색상을 변경하는 버튼 생성
Button(win, text="Update the Color", command=on_click).pack()
win.mainloop()itemconfig() 메서드의 핵심 포인트
- 첫 번째 인자로 변경하고자 하는 캔버스 항목의 ID를 전달합니다. 위 예제에서는 create_line()이 반환한 값인
line이 해당됩니다. - 변경할 속성은
fill,width,outline등 키워드 인자 형태로 지정합니다. - 필요하다면 여러 속성을 한 번의 호출로 동시에 변경할 수도 있습니다.
실행 결과
위 코드를 실행하면 버튼 하나와 캔버스 위에 노란색 선이 그려진 창이 나타납니다.

이제 "Update the Color" 버튼을 클릭해 보세요. on_click() 함수가 호출되면서 itemconfig() 메서드가 실행되고, 캔버스 항목인 선의 색상이 초록색으로 바뀌는 것을 확인할 수 있습니다.
