[python] Tkinter 캔버스에 도형 그리기

Tkinter는 파이썬의 표준 GUI(Graphic User Interface) 패키지로, 사용자 인터페이스를 구현할 수 있는 다양한 도구를 제공합니다. 이 중 캔버스(Canvas)는 그래픽 요소를 그릴 수 있는 공간을 제공해주는 역할을 합니다.

이번에는 Tkinter의 Canvas를 사용하여 도형을 그려보도록 하겠습니다.

Import 패키지

먼저 Tkinter 패키지를 import 해줍니다.

import tkinter as tk

캔버스 생성

Tkinter의 Tk() 객체를 생성하여 윈도우를 만들고, 이 윈도우에 캔버스를 추가합니다.

window = tk.Tk()

canvas = tk.Canvas(window, width=400, height=400)
canvas.pack()

위 코드에서 widthheight는 캔버스의 가로와 세로 크기를 설정하는 부분입니다. 그리고 canvas.pack() 메서드를 호출하여 윈도우에 캔버스를 추가합니다.

도형 그리기

캔버스에 원, 직사각형, 선 등 다양한 도형을 그릴 수 있습니다.

원 그리기

canvas.create_oval(50, 50, 150, 150, fill="red")

create_oval() 메서드를 사용하여 원을 그릴 수 있습니다. 인자로는 원의 시작점(x1, y1), 끝점(x2, y2)과 색상(fill)을 지정합니다.

직사각형 그리기

canvas.create_rectangle(200, 50, 300, 150, fill="blue")

create_rectangle() 메서드를 사용하여 직사각형을 그릴 수 있습니다. 인자로는 직사각형의 시작점(x1, y1), 끝점(x2, y2)과 색상(fill)을 지정합니다.

선 그리기

canvas.create_line(50, 200, 150, 300, fill="green", width=3)

create_line() 메서드를 사용하여 선을 그릴 수 있습니다. 인자로는 선의 시작점(x1, y1), 끝점(x2, y2), 선의 색상(fill)과 두께(width)를 지정합니다.

실행

마지막으로 window.mainloop() 메서드를 호출하여 윈도우를 실행시킵니다.

window.mainloop()

위의 코드를 실행하면 Tkinter 윈도우가 열리고, 캔버스에 원, 직사각형, 선이 그려진 것을 확인할 수 있습니다.

전체 코드

import tkinter as tk

window = tk.Tk()

canvas = tk.Canvas(window, width=400, height=400)
canvas.pack()

canvas.create_oval(50, 50, 150, 150, fill="red")
canvas.create_rectangle(200, 50, 300, 150, fill="blue")
canvas.create_line(50, 200, 150, 300, fill="green", width=3)

window.mainloop()

참고 자료