반응형
마우스로 그림을 그릴 수 있는 그림판 프로그램
from tkinter.colorchooser import *
from tkinter.simpledialog import *
#함수 선언 부분
def mouseClick(event) :
global x1, y1, x2, y2
x1 = event.x
y1 = event.y
def mouseDrop(event) :
global x1, y1, x2, y2, penWidth, penColor
x2 = event.x
y2 = event.y
canvas.create_line(x1, y1, x2 ,y2, width = penWidth, fill = penColor)
def getColor() :
global penColor
color = askcolor()
penColor = color[1]
def getWidth() :
global penWidth
penWidth = askinteger("선 두꼐", "선 두께(1~10)를 입력하세요.",
minvalue = 1, maxvalue = 10)
#전역 변수 선언 부분
window = None
canvas = None
x1, x2 ,y1, y2 = None, None, None, None #선의 시작점과 끝점
penColor = 'black'
penWidth = 5
#메인 코드 부분
if __name__ == "__main__" :
window = Tk()
window.title("그림판 비슷한 프로그램")
canvas = Canvas(window, height = 300, width = 300)
canvas.bind("<Button -1>", mouseClick)
canvas.bind("<ButtonRelease-1>", mouseDrop)
canvas.pack()
mainMenu = Menu(window)
window.config(menu = mainMenu)
fileMenu = Menu(mainMenu)
mainMenu.add_cascade(label = "설정", menu = fileMenu)
fileMenu.add_command(label = "선 색상 선택", command = getColor)
fileMenu.add_separator()
fileMenu.add_command(label = "선 두께 설정", command = getWidth)
window.mainloop()
마우스를 클릭하는 순간에 시작점 전역 변수 x1, y1의 값을 설정하고
마우스를 드롭하는 순간 끝점 전역 변수 x2, y2의 값을 설정합니다.
선 색상을 선택하도록 코딩해주고 두께도 1~10의 값을 선택할 수 있도록 코딩해 줍니다.
왼쪽 마우스 버튼을 클릭하면 클릭 함수가 실행되고 드롭하면 드롭 함수가 실행되도록 설정해 줍니다.
메뉴도 설정해 주고 getColor()와 getWidth() 함수가 실행되도록 설정합니다.
프로그램을 실행하고 설정 버튼을 눌러줍니다.
선 색상과 두께를 설정할 수 있습니다.
먼저 선 색을 정해줍니다.
선 두께도 정해줍니다.
마우스를 드래그해서 그림을 그릴 수 있습니다.
반응형
'프로그래밍언어 > Python' 카테고리의 다른 글
[Python] : 미니 포토샵 프로젝트 (2부) (0) | 2021.11.10 |
---|---|
[Python] : 미니 포토샵 프로젝트 (1부) (0) | 2021.11.10 |
[Python] : 동물 투표 프로그램 (0) | 2021.11.10 |
[Python] : 명화 감상 프로그램 (0) | 2021.11.03 |
[Python] : 메뉴와 대화상자 (0) | 2021.11.03 |
댓글