New World
[파이썬 공부 #4] Tkinter, 이벤트 처리, 캔버스 본문
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 = 이미지) #사진을 캔버스 위에 생성
'Programming > Languages' 카테고리의 다른 글
[JSP 공부 #2] 쿠키와 세션 (0) | 2020.06.29 |
---|---|
[JSP 공부 #1] JSP 액션 태그 (0) | 2020.06.29 |
[파이썬 공부 #3] 모듈, turtle 모듈 (0) | 2020.06.17 |
[파이썬 공부 #2] 함수, 라이브러리 등 (0) | 2020.06.17 |
[파이썬 공부 #1] 함수, 변수, 가변 인자 (0) | 2020.06.17 |