
이 강의는 Tkinter GUI 강의 55강입니다
54강에서는
Canvas에 텍스트와 이미지를 그리며
Canvas가 정보 표현용 UI라는 것을 확인했습니다.
이번 강의에서는
Canvas를 제어하기 위한 핵심 개념,
아이템 ID(Item ID) 를 다룹니다.
이번 강의의 목표는 분명합니다.
Canvas에 그린 요소를
다시 찾아서 조작할 수 있는 방법을 이해하는 것입니다.
Canvas는 왜 ID를 필요로 할까
Canvas에 그린 선, 도형, 텍스트는
모두 “그려지고 끝”이 아닙니다.
실제로는
이후에 이런 작업을 하게 됩니다.
- 이동시키기
- 삭제하기
- 색상 바꾸기
- 텍스트 변경하기
이때 필요한 것이
아이템 ID입니다.
Canvas 아이템 ID란 무엇인가
Canvas에서
create_ 메서드를 호출하면
항상 정수 하나를 반환합니다.
item_id = canvas.create_rectangle(...)
이 숫자가 바로
해당 아이템을 식별하는
ID입니다.
가장 단순한 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)
rect_id = canvas.create_rectangle(50, 50, 150, 120, fill="skyblue")
print(rect_id)
window.mainloop()
콘솔에
1, 2 같은 숫자가
출력됩니다.
ID는 Canvas 안에서만 의미가 있다
중요한 개념 하나입니다.
아이템 ID는 해당 Canvas 내부에서만 유효합니다.
- 다른 Canvas에서는 사용 불가
- 프로그램 전체 ID가 아님
즉,
Canvas별로
독립적인 관리 체계를 가집니다.
여러 아이템의 ID는 이렇게 관리된다
line_id = canvas.create_line(20, 20, 280, 20)
rect_id = canvas.create_rectangle(40, 50, 140, 150)
oval_id = canvas.create_oval(160, 50, 260, 150)
각 아이템은
생성 순서대로
ID를 부여받습니다.
ID를 변수에 저장하는 이유
ID를 변수에 저장하지 않으면
그 아이템을
다시 제어할 방법이 없습니다.
canvas.create_rectangle(...)
이렇게만 쓰면
“그리기 전용”이 됩니다.
반대로:
box = canvas.create_rectangle(...)
이렇게 쓰면
제어 가능한 객체가 됩니다.
ID로 할 수 있는 일 미리 보기
아이템 ID가 있으면
다음과 같은 작업이 가능합니다.
canvas.move(box, 10, 0)
canvas.delete(box)
canvas.itemconfig(box, fill="red")
이 개념들이
다음 강의부터
하나씩 이어집니다.
여러 ID를 묶어서 관리하기
Canvas에서
여러 객체를 다루게 되면
보통 리스트나 딕셔너리를 사용합니다.
items = []
items.append(canvas.create_rectangle(10, 10, 60, 60))
items.append(canvas.create_rectangle(70, 10, 120, 60))
이 구조는
드래그, 선택, 삭제 처리의
기초가 됩니다.
ID는 곧 “객체의 정체성”이다
Canvas 아이템은
클래스 인스턴스가 아닙니다.
하지만
ID를 통해
객체처럼 다룰 수 있습니다.
이게
Canvas가
강력한 이유 중 하나입니다.
초보자가 자주 헷갈리는 포인트
다음은
아주 흔한 실수입니다.
- ID를 저장하지 않음
- 여러 아이템을 하나의 변수로 덮어씀
- 어떤 ID가 어떤 객체인지 헷갈림
이 문제는
처음부터 ID 관리 습관을 들이면
사라집니다.
Canvas 제어의 출발점
여기서 꼭 기억할 문장입니다.
Canvas를 제어하려면 반드시 아이템 ID가 필요하다
이 개념이
이후의 이동, 이벤트, 애니메이션
전부의 출발점입니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- Canvas 아이템은 생성 시 ID를 반환한다
- ID는 정수이며 Canvas 내부에서만 유효하다
- ID를 저장해야 제어가 가능하다
- ID는 Canvas 객체의 정체성이다
다음 강의 예고
다음 강의에서는
Canvas 아이템을 실제로 이동(move)시키는 방법을 다룹니다.
이제
Canvas 객체가
“움직이기” 시작합니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 57강 Canvas 아이템 삭제(Delete)하기 (0) | 2026.02.18 |
|---|---|
| [Tkinter] 56강 Canvas 아이템 이동(move)시키기 (0) | 2026.02.17 |
| [Tkinter] 54강 Canvas에 텍스트와 이미지 그리기 (0) | 2026.02.16 |
| [Tkinter] 53강 Canvas에 선과 도형 그리기 (0) | 2026.02.16 |
| [Tkinter] 52강 Canvas 위젯 기본 개념 이해하기 (0) | 2026.02.15 |