1,按键触发事件通常都与图像处理相结合起来:
下面是一些常见的属性:
from tkinter import *
win=Tk()
win.title('键盘事件')
txt=StringVar()#元组类
def key_action(event):
print("pressed",repr(event.char))#按下时打印在工作台
s=event.char
txt.set(s)#按下的字母记录到txt上
def callback(event):
L.focus_set()#把键盘焦点设置到文本上
L=Label(win,width=20,textvariable=txt,bg='cyan')#按下后显示在lable上
L.bind("<KeyPress>",key_action)
L.bind("<Button-1>",callback)#鼠标点下将回调回来到我点的地方
L.pack()
win.mainloop()
运行效果:
一个关于按键的小练习:
import tkinter
import time
from tkinter import *
#1,定义窗口
win=tkinter.Tk()
win.title("键盘移动矩形案例")
win.geometry('500x500')
#2,设置画布
canvas=Canvas(win,width=400,height=400,bg='green')
canvas.pack()
#3,定义矩形
x=180
y=180
rect=canvas.create_rectangle(x,y,x+30,y+30,fill='red')#形状一开始会被创建在什么地方
print(rect)
#4,定义移动函数
def moveRect(event):
if event.keysym=='Up':#当你按下向上键的事件时
canvas.move(rect,0,-5)#对于rect这个东西来说,x轴方向不变,y轴向上走5
elif event.keysym=='Down':
canvas.move(rect,0,5)
elif event.keysym=='Left':
canvas.move(rect,-5,0)
elif event.keysym=='Right':
canvas.move(rect,5,0)
win.update()#刷新页面
time.sleep(0.05)
#5,方向键控制方块移动
canvas.bind_all('<KeyPress-Up>',moveRect)#两个参数为:传进来一个事件,一个触发事件后的函数
canvas.bind_all('<KeyPress-Down>',moveRect)
canvas.bind_all('<KeyPress-Left>',moveRect)
canvas.bind_all('<KeyPress-Right>',moveRect)
win.mainloop()
运行效果: