-
Python: Window programming Tkinter 라이브러리 정리 2Python 2021. 4. 16. 19:50
1. 마우스 이벤트 처리
from tkinter import * from tkinter import messagebox def clickLeft(event): messagebox.showinfo("마우스", "마우스 왼쪽 버튼이 클릭됨") def clickRight(event): messagebox.showinfo("마우스", "마우스 오른쪽 버튼이 클릭됨") window = Tk() window.bind("<Button-1>", clickLeft) window.bind("<Button-3>", clickRight) window.mainloop()
2. 마우스 클릭 이벤트 이미지에 바인딩하기
from tkinter import * from tkinter import messagebox def clickImage(event): messagebox.showinfo("이미지", "이미지가 클릭되었습니다.") window = Tk() photo = PhotoImage(file="gif/gingerbread.gif") label = Label(window, image=photo) label.bind("<Button>", clickImage) label.pack(expand=1, anchor=CENTER) window.mainloop()
3. event 매개변수를 활용한 마우스 이벤트 처리
마우스 클릭시 어떤 마우스가 클릭되었는지 보여주고 클릭한 좌표출력
from tkinter import * def clickMouse(event): text = "" if event.num == 1: text += "마우스 왼쪽 버튼이" elif event.num == 3: text += "마우스 오른쪽 버튼이" text += " ({}, {})에서 클릭됨".format(event.x, event.y) label.configure(text=text) window = Tk() window.geometry("400x400") label = Label(window, text=" 여기가 바뀝니다.") label.pack(expand = 1, anchor=CENTER) window.bind("<Button>", clickMouse) window.mainloop()
4. 키보드 이벤트의 기본 처리
from tkinter import * from tkinter import messagebox def keyEvent(event): messagebox.showinfo("키보드 이벤트", "눌린 키: " + chr(event.keycode)) window = Tk() window.bind("<Key>", keyEvent) window.mainloop()
5. 메뉴 생성하기
from tkinter import * window = Tk() window.geometry("400x400") mainMenu = Menu(window) window.config(menu=mainMenu) fileMenu = Menu(mainMenu) mainMenu.add_cascade(label="파일", menu=fileMenu) fileMenu.add_command(label="열기") fileMenu.add_separator() fileMenu.add_command(label="종료") window.mainloop()
6. 메뉴를 선택하면 동작할 수 있도록 코드 추가
from tkinter import * from tkinter import messagebox def func_open(): messagebox.showinfo("메뉴선택", "열기 메뉴를 선택함") def func_exit(): window.quit() window.destroy() window = Tk() mainMenu = Menu(window) window.config(menu=mainMenu) fileMenu = Menu(mainMenu) mainMenu.add_cascade(label="파일", menu=fileMenu) fileMenu.add_command(label="열기", command=func_open) fileMenu.add_separator() fileMenu.add_command(label="종료", command=func_exit) window.mainloop()
7. 대화상자의 생성과 사용
from tkinter import * from tkinter.simpledialog import * window = Tk() window.geometry("400x100") label = Label(window, text = "입력된 값") label.pack() value = askinteger("확대배수", "주사위 숫자(1~6)을 입력하세요", minvalue=1, maxvalue=6) label.configure(text=str(value)) window.mainloop()
8. 그림파일 선택하기
from tkinter import * from tkinter.filedialog import * window = Tk() window.geometry("400x100") label = Label(window, text="선택된 파일 이름") label.pack() filename = askopenfilename(parent=window, filetypes= (("GIF 파일", "*.gif"), ("모든 파일", "*.*"))) label.configure(text=str(filename)) window.mainloop()
9. 그림 파일 저장하기
from tkinter.filedialog import * def func_open(): filename = askopenfilename(parent=window, filetypes= (("GIF 파일", "*.gif"),("모든 파일", "*.*"))) photo =PhotoImage(file = filename) label.configure(image=photo) label.image = photo def func_exit(): window.quit() window.destroy() window = Tk() window.geometry("400x400") window.title("이미지 업로드하기") photo = PhotoImage() label = Label(window, image=photo) label.pack(expand=1, anchor=CENTER) mainMenu = Menu(window) window.config(menu=mainMenu) fileMenu = Menu(mainMenu) mainMenu.add_cascade(label="파일", menu=fileMenu) fileMenu.add_command(label="파일 열기", command=func_open) fileMenu.add_separator() fileMenu.add_command(label="종료", command=func_exit) window.mainloop()
반응형'Python' 카테고리의 다른 글
Python: numpy 라이브러리 정리(indexing, slicing, 정규분포 난수) (0) 2021.05.30 Python: Pillow 라이브러리 정리(이미지 편집, 이미지 필터, tkinter활용) (0) 2021.05.02 Python: Window programming Tkinter 라이브러리 정리 1 (0) 2021.04.09 Python: 클래스, 멀티스레딩, 멀티프로세싱(Class, Multi threading, Multi Processing) 참고 (0) 2021.04.03 Python: 파일 입출력(이진 파일, shutil, os, os.path) 예외처리 참고 (0) 2021.03.27