본문 바로가기

[Tkinter] 58강 Canvas 아이템 속성 변경 (itemconfig)

@도마22026. 2. 18. 21:00
728x90


이 강의는 Tkinter GUI 강의 58강입니다

57강에서는
Canvas 아이템을
delete()로 제거하는 방법을 배웠습니다.

이번 강의에서는
Canvas 아이템의 모양과 내용
실시간으로 바꾸는 방법,
itemconfig()를 다룹니다.

이번 강의의 목표는 분명합니다.
Canvas 아이템을
그려진 뒤에도 자유롭게 수정하는 감각을 익히는 것입니다.


Canvas 아이템은 “고정”이 아니다

Canvas에서 그린 도형과 텍스트는
한 번 만들고 끝이 아닙니다.

다음과 같은 변경이 가능합니다.

  • 색상 변경
  • 두께 변경
  • 텍스트 내용 변경
  • 폰트 변경

이 모든 작업을
itemconfig로 처리합니다.


itemconfig 기본 형태

canvas.itemconfig(item_id, 옵션=값)

또는

canvas.itemconfigure(item_id, 옵션=값)

두 이름은
동일하게 동작합니다.


색상 변경 예제

import tkinter as tk

window = tk.Tk()
window.geometry("320x240")

canvas = tk.Canvas(window, width=300, height=200, bg="white")
canvas.pack(pady=20)

box = canvas.create_rectangle(80, 60, 160, 140, fill="skyblue")

canvas.itemconfig(box, fill="orange")

window.mainloop()

사각형의
색상이
바뀐 상태로
표시됩니다.


버튼으로 색상 변경하기

import tkinter as tk

window = tk.Tk()
window.geometry("320x240")

canvas = tk.Canvas(window, width=300, height=200, bg="white")
canvas.pack()

box = canvas.create_rectangle(80, 60, 160, 140, fill="green")

def change_color():
    canvas.itemconfig(box, fill="red")

tk.Button(window, text="색상 변경", command=change_color).pack(pady=10)

window.mainloop()

이제
Canvas 아이템은
이벤트에 반응합니다.


선 두께와 색상 변경

선(Line) 아이템도
속성 변경이 가능합니다.

line = canvas.create_line(20, 20, 280, 20, width=2)

canvas.itemconfig(line, fill="blue", width=5)

 

  • fill → 선 색상
  • width → 선 두께

 

텍스트 내용 변경하기

Canvas 텍스트는
내용 자체를
바꿀 수 있습니다.

text_id = canvas.create_text(150, 100, text="처음 텍스트")

canvas.itemconfig(text_id, text="변경된 텍스트")

이 패턴은
상태 표시, 점수 표시 등에서
자주 사용됩니다.


폰트와 정렬도 변경 가능하다

canvas.itemconfig(
    text_id,
    font=("Arial", 16, "bold"),
    fill="blue"
)

Canvas 텍스트는
Label과 거의 동일한
옵션을 사용합니다.


여러 속성을 한 번에 변경하기

canvas.itemconfig(
    box,
    fill="yellow",
    outline="black",
    width=3
)

UI 반응을
명확하게 표현할 때
자주 쓰입니다.


itemconfig는 “ID 기반 제어”다

중요한 포인트입니다.

itemconfig는 반드시 아이템 ID가 필요합니다.

ID가 없다면
어떤 객체를
바꿀지 알 수 없습니다.

그래서
55강의 ID 개념이
여기서 다시 중요해집니다.


상태 변화 표현에 itemconfig 사용하기

Canvas에서는
상태를 “색”으로 표현하는 경우가 많습니다.

def select():
    canvas.itemconfig(box, fill="orange")

def deselect():
    canvas.itemconfig(box, fill="gray")

선택 / 비선택
표현의 기초입니다.


초보자가 자주 하는 실수

다음 실수는
자주 발생합니다.

  • itemconfig와 itemconfigure를 다른 것으로 착각
  • delete된 ID에 itemconfig 호출
  • 도형과 텍스트 옵션을 혼동

항상
어떤 타입의 아이템인지
의식해야 합니다.


Canvas 제어 흐름이 완성되다

이제 Canvas 아이템은:

  • 생성한다 (create)
  • 이동한다 (move)
  • 삭제한다 (delete)
  • 모습이 바뀐다 (itemconfig)

이 네 가지로
대부분의 UI 동작을
표현할 수 있습니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • itemconfig로 아이템 속성을 변경한다
  • 색상, 두께, 텍스트 모두 변경 가능하다
  • ID가 반드시 필요하다
  • 상태 표현의 핵심 도구다

다음 강의 예고

다음 강의에서는
Canvas 아이템의 좌표를 직접 다루는 방법(coords) 을 배웁니다.

이제
이동량이 아니라
정확한 위치 제어로 넘어갑니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차