728x90
반응형
SMALL
tkinter 를 이용하여 메뉴 만들기 코드 입니다.
아래 이미지파일을 다운로드받고 소스코드와 같은 폴더에서 복사하여 주세요
from tkinter import *
class Menu:
def __init__(self):
window = Tk()
window.title("키보드 이벤트")
window.geometry("640x480")
self.menu_idx = 0
self.canvas=Canvas(window, bg ="white")
self.canvas.pack(expand=True, fill=BOTH)
window.bind("<KeyPress>",self.keyPressHandler)
window.bind("<KeyRelease>",self.keyReleaseHandler)
self.canvas.create_text(320,360,font="Times 15 italic bold",text="Menu Example")
self.canvas.create_text(320,160,font="Times 15 italic bold",text="Menu 1")
self.canvas.create_text(320,200,font="Times 15 italic bold",text="Menu 2")
self.canvas.create_text(320,240,font="Times 15 italic bold",text="Menu 3")
self.menustr = "Menu selection: "
self.menu_id = self.canvas.create_text(320,320,font="Times 15 italic bold",text=self.menustr)
self.arrowimg = PhotoImage(file="arrow.png").subsample(20)
self.arrow = self.canvas.create_image(250,160, image = self.arrowimg,tags="arrow")
while True:
#
#
window.after(33)
window.update()
def keyReleaseHandler(self, event):
if event.keycode == 38 and self.menu_idx > 0: # up direction key
self.menu_idx = self.menu_idx - 1
self.canvas.move(self.arrow, 0, -40)
if event.keycode == 40 and self.menu_idx < 2: # down direction key
self.menu_idx = self.menu_idx + 1
self.canvas.move(self.arrow, 0, 40)
if event.keycode == 32:
self.menustr = "Menu selection: " + str(self.menu_idx)
self.canvas.itemconfigure(self.menu_id, text=self.menustr)#object 속성 수정
def keyPressHandler(self,event):
print(event.keycode)
Menu()
728x90
반응형
LIST
'IT > 파이썬(Python)' 카테고리의 다른 글
파이썬 네트워크 통신 채팅 프로그램 서버 클라이언트 예제 (0) | 2023.08.25 |
---|---|
파이썬 tkinter 게임 GUI 화면 장면 전환 스테이지 만들기 pack, unpack, pack_forget, protocol, destroy 함수 (0) | 2022.04.04 |
파이썬 tkinter 마우스 이벤트 코드 예제, 이벤트 종류, bind 함수 설명, (0) | 2022.04.04 |
파이썬 움직이는 gif 이미지 읽어오기 (0) | 2022.04.04 |
파이썬 tkinter 키보드 이벤트 이미지 애니메이션 bind (0) | 2022.04.04 |