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

Python Tkinter 캔버스(Canvas)에서 선(Line)을 삭제하는 방법

Tkinter의 Canvas(캔버스) 위젯은 GUI 애플리케이션 개발에서 다양한 용도로 활용됩니다. 캔버스 위젯을 사용하면 도형을 그리거나 그래픽과 이미지를 만드는 등 여러 작업을 손쉽게 수행할 수 있습니다. 캔버스에 선을 그리려면 create_line(x, y, x1, y1, **options) 메서드를 사용하면 되며, Tkinter에서는 실선(simple)과 점선(dashed) 두 가지 유형의 선을 그릴 수 있습니다.

애플리케이션에서 이미 생성된 선을 삭제하고 싶다면 delete() 메서드를 사용하면 됩니다. 이 메서드는 캔버스에 그려진 항목의 아이템 ID를 인자로 받아 해당 요소를 화면에서 제거합니다.

예제 코드

다음 예제는 캔버스 위젯에 정의된 선을 삭제하는 과정을 보여줍니다.

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

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

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

# 도형을 삭제하는 함수 정의
def on_click():
    canvas.delete(line)

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

# 캔버스 위젯에 선 추가
line = canvas.create_line(100, 200, 200, 35, fill="red", width=10)

# 선을 삭제하는 버튼 생성
Button(win, text="Delete Shape", command=on_click).pack()

win.mainloop()

실행 결과

위 코드를 실행하면 버튼 하나와 캔버스 안에 빨간색 선이 표시된 창이 나타납니다.

Python Tkinter 캔버스(Canvas)에서 선(Line)을 삭제하는 방법

이제 "Delete Shape" 버튼을 클릭하면 캔버스에 표시된 선이 즉시 삭제됩니다.

추가 팁

canvas.delete("all")을 사용하면 캔버스의 모든 항목을 한 번에 삭제할 수 있습니다. 또한 create_line()은 반환값으로 아이템 ID를 제공하므로, 이를 변수에 저장해 두었다가 나중에 delete() 메서드에 전달하는 방식으로 특정 도형만 선택적으로 관리할 수 있습니다.