前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tkinter -- Event(2)

tkinter -- Event(2)

作者头像
py3study
发布2018-08-03 10:59:52
6430
发布2018-08-03 10:59:52
举报
文章被收录于专栏:python3python3

测试离开(Leave)事件

测试鼠标释放事件

代码:

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()
def printcoords(event):
    print(event.x, event.y)

# 创建第一个 Button,并将它与 Enter 事件绑定
bt1 = tk.Button(root, text='leftmost button')
bt1.bind('<Leave>',printcoords)
bt1.grid()
root.mainloop()

结果:

blob.png
blob.png

分别测试 Leave 事件,只是在离开组件是会产生此事件

响应特殊键(Special Key)

代码;

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()
def printcoords(event):
    print('event.char = ', event.char)
    print('event.keycode = ', event.keycode)

# 创建第一个 Button,并将它与 BackSpace 键绑定
bt1 = tk.Button(root,text='Press BackSpace')
bt1.bind('<BackSpace>', printcoords)

# 创建二个 Button,并将它与回车键绑定
bt2 = tk.Button(root, text='Press Enter')
bt2.bind('<Return>', printcoords)

# 创建第三个 Button,并将它与 F5键绑定
bt3 = tk.Button(root, text='F5')
bt3.bind('<F5>', printcoords)

# 创建第4个 Button,并将它与左 Shift 键绑定,与参考上说法一致
bt4 = tk.Button(root, text='Left Shift')
bt4.bind('<Shift_L>', printcoords)

# 创建第5个 Button,并将它与右 Shift 键绑定,与参考上说法一致
bt5 = tk.Button(root,text='Right Shift')
bt5.bind('<Shift_R>',printcoords)

# 将焦点设置到第1个 Button 上
bt1.focus_set()
bt1.grid()
bt2.grid()
bt3.grid()
bt4.grid()
bt5.grid()

root.mainloop()

结果:

blob.png
blob.png

各个组件间焦点的切换可以使用 TAB 键

特 殊 键Cancel/Break/BackSpace/Tab/Return/Sift_L/Shift_R/Control_L/Control_R/Alt_L/Alt_R/Pause

# Caps_Loack/Escape/Prior(Page Up)/Next(PageDown)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/F1-12/Num_Lock/Scroll_Lock这些键的 char 是不可打印的,可以使用 event.keycode 查看

响应所有的按键(Key)事件

使用 Key 处理所有的键盘事件

代码:

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()

def printcoords(event):
    print('event.keycode = ', event.keycode)

# 创建第一个 Button,并将它与 Key 键绑定
bt1 = tk.Button(root,text='Press BackSpace')
bt1.bind('<Key>', printcoords)
# 将焦点设置到第1个 Button 上
bt1.focus_set()
bt1.grid()
root.mainloop()

结果:

blob.png
blob.png

处理所有的按键事件,如果是上例的特殊键,event.char 返回为空;其它情况下为这个键的值

如果输入大写字母(即上档键值),按下 Shift 键时就会有 Key 的事件触发。即回将用两次:一次为 Shift 本身,另一次为 Shift+ Kye 的实际键值

只处理指定的按键消息

代码:

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()
def printCoords(event):
    print('event.char = ',event.char)
    print('event.keycode = ',event.keycode)
# 创建第一个 Button,并将它与键'a'绑定
bt1 = tk.Button(root,text = 'Press BackSpace')
bt1.bind('a',printCoords)
# 创建二个 Button,并将它与按下 spacebar 是触发事件
bt2 = tk.Button(root,text = 'Press spacebar')
bt2.bind('<space>',printCoords)
# 创建第三个 Button,并将它与'<'键绑定
bt3 = tk.Button(root,text = 'less than key')
bt3.bind('<less>',printCoords)
# 将焦点设置到第1个 Button 上
bt1.focus_set()
bt1.grid()
bt2.grid()
bt3.grid()
root.mainloop()

结果:

blob.png
blob.png

一般的按键直接使用就可以了,这样书写'key',不是'<key>'

但有两个需要特别注意:空格与小于的处理,使用方式为'<space>和<less>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档