New World

[파이썬 공부 #4] Tkinter, 이벤트 처리, 캔버스 본문

Programming/Languages

[파이썬 공부 #4] Tkinter, 이벤트 처리, 캔버스

hyeovi 2020. 6. 17. 11:04
728x90
반응형

Tkinter

- 파이썬에 기본적으로 내장되어 있는 파이썬 표준 패키지

- Tcl/Tk에 대한 파이썬 버전으로 Tcl/Tk를 파이썬에 사용할 수 있도록 한 경량(Lightweight)의 그래픽 사용자 인터페이스(GUI: Graphical User Interface) 모듈

- Tcl은 ‘Tool Command Language’ 일종의 프로그래밍 언어

 

GUI

- 텍스트 모드가 아니라 위젯 또는 콤포넌트라 불리는 원도나 각종 버튼, 마우스, 다이어로그 등을 사용해 사용자와 프로그램 간의 정보를 교환하는 방식

- 바로 우리가 사용하는 윈도나 애플의 운영체제가 바로 GUI

 

from tkinter import *

win = Tk() win.geometry('높이x너비+초기x좌표+초기y좌표) #윈도우 띄우기

win.title('글씨') #윈도우 이름으로 띄울 글씨

win.mainloop() #윗 코드가 계속 돌아갈 수 있도록

 

윈도우에 레이블 띄우기

lbl = Label(win, text="레이블명") #레이블명으로 레이블 띄우기

lbl.pack() #lbl 띄우기

 

엔트리 띄우기

txt = Entry(win) #윈도우에 엔트리 넣기

txt.insert(포함할 것, '엔트리 글씨') #엔트리 글씨를 넣은 것 삽입

txt.pack() #엔트리 띄우기

 

버튼 띄우기

btn = Button(win, text = "버튼 명") #버튼명이 있는 버튼 띄우기

btn.pack() #버튼 띄우기

 

자리잡기

화면에 보여줄 것.grid(row = 세로, colum = 가로, rowspan = 세로를 어디까지 채울 것인지, columnspan = 가로를 어디까지 채울 것인지, padx = 외부 여백)

 

이벤트 처리 개요

이벤트 처리: 윈도에서 버튼이나 메뉴 클릭에서 특정한 작업을 수행

- 이벤트 핸들러: 발생한 이벤트를 처리하는 작업, 사용자 정의 함수나 시스템 함수에서 수행

 

Tkinter의 이벤트 처리 방법

1. 이벤트 진원지인 버튼이나 메뉴의 키워드 인자 'command=함수명'으로 이벤트 핸들러를 지정하는 방법

ex)

def 이벤트 처리 함수():

                 구현

btn = tk.Button(win, text ="이벤트 처리버튼")

btn['command'] = 이벤트 처리 함수명

 

2. 위젯 함수 bind(이벤트, 함수명)으로 이벤트와 이벤트 핸들러인 함수를 연결하는 방법, 정해진 마우스와 키보드의 다양한 이벤트에 대해 처리가 가능

 

ex) def 이벤트 처리 함수(이벤트):

                                  구현

btn = tk.Button(win, text ="이벤트 처리버튼")

btn.bind('', 이벤트 처리버튼명)

 

캔버스는 선, 다각형, 원 등을 그리기 위한 위젯으로 활용

- relief: 테두리 모양으로 flat, groove, raised, ridge, solid, sunken

- 외곽 테두리 두께는 borderwidth 또는 bd에 지정

- 함수 pack()에서 확장 여부를 expand에 지정

- 윈도의 크기가 변함에 따라 채워질 방향을 가로, 세로 양쪽인 fill='both'으로 지정

 

canvas = Canvas(win, bg = 'Yellow') #배경색 지정

canvas.pack(expand = YES, fill = BOTH) #가득차게 그려주기

img = PhotoImage(file = "이미지명") #이미지 띄우기

canvas.create_image (초기 x위치, 초기 y위치, anchor = NW, image = 이미지) #사진을 캔버스 위에 생성

반응형
Comments