首页 > 编程笔记

Tkinter键盘事件处理

tkinter 可以处理所有的键盘事件,包括 Ctrl、Alt、F1、Home 等特殊键。

下面是键盘事件:

下面的示例是在窗口内创建一个窗体,在窗体内创建一个文字标签。在主窗口内处理所有的键盘事件,当有按键时,将键盘的符号与 ASCII 码写入文字标签内。
#使用tkinter事件
from tkinter import *
#处理在窗体内按下键盘按键(非功能键)的事件
def handleKeyEvent (event):
    label1 ["text"] = "You press the "+ event.keysym + " key\n"
    label1["text"] += "keycode = " + str (event.keycode)
#创建主窗口
win = Tk()
#创建窗体
frame = Frame (win, relief=RAISED, borderwidth=2, width=300, height=200)
#将主窗口与键盘事件连接
eventType = ["Key", "Control-Up", "Return", "Escape", "F1", "F2", "F3", "F4",
"F5","F6", "F7", "F8", "F9", "F13", "F11", "F12", "Num_Lock", "Scroll_Lock",
"Caps_Lock", "Print", "Insert", "Delete", "Pause", "Prior", "Next","BackSpace",
"Tab", "Cancel", "Control_L","Alt_L","Shift_L","End", "Home", "Up","Down",
"Left", "Right"]
for type in eventType:
    win.bind("<" + type + ">",handleKeyEvent)
#文字标签,显示键盘事件的种类
label1 = Label (frame, text="No event happened", foreground="#0000ff", background="#00ff00")
label1.place(x=16,y=20)
#设置窗体的位置
frame.pack (side=TOP)
#开始窗口的事件循环
win.mainloop ()
以 .pyw 后缀保存文件后,直接双击运行该文件,结果如图 1 所示:

键盘事件实例
图1:程序运行结果

优秀文章