관리 메뉴

한다 공부

[Python] 실습4 : 그림판 프로그램 구현 (+Tkinter) 본문

Dev/Python

[Python] 실습4 : 그림판 프로그램 구현 (+Tkinter)

사과당근 2021. 7. 23. 02:56

그림판이라고 하기에도 너무나도 단순한
그림 그리는 프로그램이다.

 

기능은

왼쪽 마우스를 누르고 그림을 그리면

파란펜으로 그림이 그려지고

'빨간펜' 이라는 버튼을 누르고 그림을 그리면

빨간펜으로 그림이 그려진다

 

 

canvas.create_oval

 

canvas.create_oval을 쓰면

x0 y0을 왼쪽 상단 점으로

x1 y1을 오른쪽 하단 점으로 하는 사각형에 내접한 타원이 그려진다.

 

이걸 펜으로 쓸 예정이다.

작은 원들이 모여서 선을 그린다고 생각하면 된다. 

 

가시적으로 보이게 하기 위해 두툼한 펜으로 그어봤다

원이 보이나용?

canvas.create_oval

 

canvas.create_rectangle을 써도 되는데,

이 경우에는 작은 네모들이 모여서 선을 그려낸다

 

아래가 canvas.create_rectangle을 쓴 것이다

네모네모가 보미나묘?

canvas.create_rectangle

 

취향에 맞게 고르자

 

from tkinter import *
mycolor = "blue"

#그리는 함수, 튜플을 이용해 위치 값을 전달해주자
def paint(event):
    x1, y1 = ( event.x-1 ), ( event.y-1 )
    x2, y2 = ( event.x+1 ), ( event.y+1 )
    canvas.create_oval(x1, y1, x2, y2, fill=mycolor, outline=mycolor)

#빨간색으로 변경하는 함수
def change_color():
    global mycolor
    mycolor="red"

window = Tk();
canvas = Canvas(window);
canvas.pack()
#왼쪽 마우스를 누르면 그려지도록 함
canvas.bind("<B1-Motion>", paint)
#"빨간색"버튼을 누르면 change_color 함수를 통해 색 변경
button = Button(window, text="빨간색",command=change_color)
button.pack()
window.mainloop()

 

실행결과는 아래와 같다

그림을 그리고 "빨간색" 버튼을 눌러서 글씨를 썼다

그림실력 뽐내봤습니다

그림판이랑 유사한 기능을 한다

코드를 좀만 손보면 더 그림판 같아질 것 같다

 

라라라

펜 설정도 자유롭게 바꿀 수 있고

꽤 마음에 드는 프로그램을 취향에 맞게 만들 수 있다

 

굿입니다. 굿!

 

 

[참고자료] 두근두근 파이썬 (생능출판, 천인국)