Python筆記之Tkinter(Key鍵盤事件)

一、目標

學習Tkinter製作窗體軟件的基礎,觸發鍵盤事件。

響應特殊按鍵事件
<Shift_L>     左shift按鍵響應
<Shift_R>     右shift按鍵響應
<F2>          F2按鍵相應,F3,F4.....
<Return>      回車按鍵相應
<BackSpace>   退格刪除鍵相應

二、試驗平臺

windows7 , python3.7

三、直接上代碼

import tkinter
from tkinter import ttk


def xFunc1(event):
    print(f"事件觸發鍵盤輸入:{event.char},對應的ASCII碼:{event.keycode}")


win = tkinter.Tk()
win.title("Kahn Software v1")    # #窗口標題
win.geometry("600x500+200+20")   # #窗口位置500後面是字母x
'''
響應所有事件(鍵盤)
<Key>   所有鍵盤按鍵會觸發

'''
xLabel = tkinter.Label(win, text="KAHN Hello world")
xLabel.focus_set()
xLabel.pack()
xLabel.bind("<Key>", xFunc1)

win.mainloop()   # #窗口持久化

測試方法:運行程序,敲擊鍵盤任意按鍵都會觸發

上面是給一個小空間綁定焦點事件,然後觸發全鍵盤點擊

 

四、全程序窗體綁定鍵盤事件

import tkinter
from tkinter import ttk


def xFunc1(event):
    print(f"事件觸發鍵盤輸入:{event.char},對應的ASCII碼:{event.keycode}")


win = tkinter.Tk()
win.title("Kahn Software v1")    # #窗口標題
win.geometry("600x500+200+20")   # #窗口位置500後面是字母x
'''
響應所有事件(鍵盤)
<Key>   所有鍵盤按鍵會觸發

'''

win.bind("<Key>", xFunc1)

win.mainloop()   # #窗口持久化

五、特殊按鍵響應事件

import tkinter
from tkinter import ttk


def xFunc1(event):
    print(f"特殊按鍵觸發:{event.char},對應的ASCII碼:{event.keycode}")


win = tkinter.Tk()
win.title("Kahn Software v1")    # #窗口標題
win.geometry("600x500+200+20")   # #窗口位置500後面是字母x
'''
響應特殊按鍵事件
<Shift_L>     左shift按鍵響應
<Shift_R>     右shift按鍵響應
<F2>          F2按鍵相應,F3,F4.....
<Return>      回車按鍵相應
<BackSpace>   退格刪除鍵相應
a    指定按鍵盤a鍵觸發
x    指定按鍵盤x鍵觸發
'''

win.bind("<BackSpace>", xFunc1)
# win.bind("a", xFunc1)
# win.bind("x", xFunc1)

win.mainloop()   # #窗口持久化

 

六、組合按鍵觸發事件

import tkinter
from tkinter import ttk


def xFunc1(event):
    print(f"組合按鍵觸發:{event.char},對應的ASCII碼:{event.keycode}")


win = tkinter.Tk()
win.title("Kahn Software v1")    # #窗口標題
win.geometry("600x500+200+20")   # #窗口位置500後面是字母x
'''
組合按鍵事件
<Control-Alt-x>     按住鍵盤Ctrl + Alt + x 按鍵觸發事件
<Shift-Up>          按住Shift + 光標上鍵 觸發事件
<Control-p>         按住Ctrl + p 觸發事件
'''

# win.bind("<Control-Alt-t>", xFunc1)
win.bind("<Control-p>", xFunc1)
# win.bind("<Control-Alt-x>", xFunc1)

win.mainloop()   # #窗口持久化

五一假開始了

kahn,2019年5月1日11:26:41

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章