Tkinter教程之Event篇(2)

'''Tkinter教程之Event篇(2)'''
'''5.测试离开(Leave)事件'''
# -*- coding: utf-8 -*-
# leave:鼠标离开时产生此事件
from tkinter import *

root = Tk()


def printCoords(event):
    print(event.x, event.y)


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

bt1.grid()

root.mainloop()
# 分别测试Leave事件,只是在离开组件是会产生此事件。

'''6.响应特殊键(Special Key)'''
# -*- coding: utf-8 -*-
# 键盘特殊键事件
from tkinter import *

root = Tk()


def printCoords(event):
    print('event.char = ', event.char)
    print('event.keycode = ', event.keycode)


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

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

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

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

# 创建第5个Button,并将它与右Shift键绑定,与参考上说法一致
bt5 = 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()
# 各个组件间焦点的切换可以使用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(Page Down)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/
#        F1-12/Num_Lock/Scroll_Lock
# 这些键的char是不可打印的,可以使用event.keycode查看。

'''7.响应所有的按键(Key)事件'''
# -*- coding: utf-8 -*-
# Key:处理所有的键盘事件
from tkinter import *

root = Tk()


def printCoords(event):
    print('event.char = ', event.char)
    print('event.keycode = ', event.keycode)


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

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

root.mainloop()
# 处理所有的按键事件,如果是上例的特殊键,event.char返回为空;其它情况下为这个键的值。
# 如果输入大写字母(即上档键值),按下Shift键时就会有Key的事件触发。即回将用两次:一次为Shift本身,另一次为Shift+ Kye的实际键值。

'''8.只处理指定的按键消息'''
# -*- coding: utf-8 -*-
# a:只处理指定的按键消息
from tkinter import *

root = Tk()


def printCoords(event):
    print('event.char = ', event.char)
    print('event.keycode = ', event.keycode)


# 创建第一个Button,并将它与键'a'绑定
bt1 = Button(root, text='Press "a" ')
bt1.bind('a', printCoords)

# 创建二个Button,并将它与按下spacebar是触发事件
bt2 = Button(root, text='Press spacebar')
bt2.bind('<space>', printCoords)

# 创建第三个Button,并将它与'<'键绑定
bt3 = Button(root, text='less than key')
bt3.bind('<less>', printCoords)

# 将焦点设置到第1个Button上
bt1.focus_set()

bt1.grid()
bt2.grid()
bt3.grid()

root.mainloop()
# 一般的按键直接使用就可以了,这样书写'key',不是'<key>';
# 但有两个需要特别注意:空格与小于的处理,使用方式为'<space>和<less>

'''9.使用组合键响应事件'''
# -*- coding: utf-8 -*-
# 组合键(Control/Alt/Shift)
from tkinter import *

root = Tk()


def printCoords(event):
    print('event.char = ', event.char)
    print('event.keycode = ', event.keycode)


# 创建第一个Button,并将它与键Shift - Up绑定
bt1 = Button(root, text='Press Shift - Up')
bt1.bind('<Shift-Up>', printCoords)

# 创建二个Button,并将它与按下Control-Alt-b时触发事件
bt2 = Button(root, text='Control-Alt-b')
bt2.bind('<Control-Alt-b>', printCoords)

# 下面的按键处理将无法接受
# 创建第三个Button,并将它与'Control-Alt'键绑定
# bt3 = Button(root,text = 'Control-Alt')
# bt3.bind('<Control-Alt>',printCoords)


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

root.mainloop()
# 使用Control/Alt/Shift与其它按键组合,但不能单独的使用Control/Alt组合。

'''10.改变组件大小事件'''
# -*- coding: utf-8 -*-
# configure:改变组件大小事件
from tkinter import *

root = Tk()


def printSize(event):
    print((event.width, event.height))


root.bind('<Configure>', printSize)

root.mainloop()
# 当组件的大小改变时触发。evnet.width/height分别返回改变后的宽度和高度。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值