[python] Tkinter 캔버스 이벤트 처리

Tkinter는 파이썬에서 GUI 프로그래밍을 하기 위한 모듈로, 다양한 위젯을 사용할 수 있습니다. 이 중에서 캔버스(Canvas)는 그래픽 요소를 그릴 수 있는 기능을 제공합니다. 이번 포스트에서는 Tkinter 캔버스의 이벤트 처리에 대해 알아보겠습니다.

캔버스 생성

먼저, Tkinter 모듈을 import 하고 캔버스 객체를 생성해야 합니다. 다음은 간단한 예제 코드입니다.

from tkinter import *

root = Tk()
canvas = Canvas(root, width=500, height=500)
canvas.pack()
root.mainloop()

위 코드에서는 Tk() 클래스를 이용하여 최상위 창(root)을 생성한 뒤, Canvas() 클래스를 이용하여 캔버스를 생성하고 크기를 지정한 후, pack() 메서드를 호출하여 캔버스를 최상위 창에 배치시켜줍니다. 마지막으로, root.mainloop()를 호출하여 GUI 이벤트 루프를 실행합니다.

이벤트 처리

캔버스에서 가장 보편적으로 사용되는 이벤트는 마우스 클릭 이벤트입니다. 다음은 캔버스를 클릭할 때마다 클릭한 위치에 원을 그리는 예제 코드입니다.

def draw_circle(event):
    x = event.x
    y = event.y
    canvas.create_oval(x-10, y-10, x+10, y+10, fill="red")

canvas.bind("<Button-1>", draw_circle)

위 코드에서는 draw_circle 함수를 정의하여 캔버스를 클릭할 때마다 호출되도록 합니다. 이 함수는 이벤트 객체를 매개변수로 받아 클릭한 위치의 x, y 좌표를 얻은 뒤, create_oval 메서드를 사용하여 해당 위치에 원을 그립니다. 마지막으로, bind 메서드를 이용하여 캔버스의 이벤트와 draw_circle 함수를 연결합니다.

정리

이번 포스트에서는 Tkinter 캔버스의 기본적인 이벤트 처리 방법을 알아보았습니다. 캔버스를 사용하여 그래픽 요소를 그리고, 클릭 이벤트를 처리할 수 있습니다. Tkinter에는 다양한 위젯과 이벤트가 있으므로, 원하는 기능을 구현하기 위해서는 공식 문서나 다른 참고 자료를 참조하시기 바랍니다.

참고 자료: