Tkinter教程之Event篇(2)

原创 2007年10月13日 21:14:00
'''Tkinter教程之Event篇(2)'''
'''5.测试离开(Leave)事件'''
# -*- coding: cp936 -*-
#
 leave:鼠标离开时产生此事件
from Tkinter import *
root 
= Tk()
def printCoords(event):
    
print event.x,event.y
# 创建第一个Button,并将它与Enter事件绑定
bt1 = Button(root,text = 'leftmost button')
bt1.bind(
'<Leave>',printCoords)

bt1.grid()

root.mainloop()
# 分别测试Leave事件,只是在离开组件是会产生此事件。
'''6.响应特殊键(Special Key)'''
# -*- coding: cp936 -*-
#
 键盘特殊键事件
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: cp936 -*-
#
 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: cp936 -*-
#
 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 BackSpace')
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: cp936 -*-
#
 组合键(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-a时触发事件
bt2 = Button(root,text = 'Control-Alt-a')
bt2.bind(
'<Control-Alt-a>',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: cp936 -*-
#
 configure:改变组件大小事件
from Tkinter import *
root 
= Tk()
def printSize(event):
    
print (event.width,event.height)
root.bind(
'<Configure>',printSize)

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

Python Tkinter界面应用开发

如果你想在Python中构建图形用户界面应用程序,Tkinter是一个必备的选择.,TkInter应用程序几乎可以在任何桌面操作系统上运行。 这门教程,我们将构建一个“番茄钟”应用程序。番茄钟,是指把任务分解成半小时左右,集中精力工作25分钟后休息5分钟,如此就是一个“番茄钟”。哪怕工作没有完成,也要定时休息,然后再进入下一个番茄时间。最后,收获4个“番茄”后,能休息15至30分钟。
  • 2017年04月22日 11:06

tkinter Event Bindings

如下为Tk官方的例子:http://www.tkdocs.com/tutorial/concepts.htmlfrom tkinter import * from tkinter import ttk...
  • shirayukixue
  • shirayukixue
  • 2015-06-11 11:02:19
  • 999

Tkinter 鼠标键盘事件

摘抄自:IT小小龙 python视频:http://www.tudou.com/programs/view/SWuVbjeKf9o/ 一: 鼠标事件                 ...
  • wjciayf
  • wjciayf
  • 2016-01-20 21:22:11
  • 3118

Tkinter教程之Event篇(1)'

Tkinter教程之Event篇(1)# 事件的使用方法1.测试鼠标点击(Click)事件# -*- coding: cp936 -*-# :鼠标左击事件# :鼠标中击事件# :鼠标右击事件# :双击...
  • jcodeer
  • jcodeer
  • 2007-10-13 21:08:00
  • 9584

[Tkinter 教程15] event 事件绑定

简介一个 Tkinter 应用生命周期中的大部分时间都处在一个消息循环 (event loop) 中. 它等待事件的发生: 事件可能是 按键按下, 鼠标点击, 鼠标移动 等. Tkinter 提供了...
  • liuxu0703
  • liuxu0703
  • 2017-03-06 22:23:57
  • 1870

Tkinter教程之Event篇(3)

'''Tkinter教程之Event篇(3)''' '''11.两个事件同时绑定到一个控件''' # -*- coding: utf-8 -*- # bind:将事件与处理函数 # 将两个事件绑定为同...
  • aa1049372051
  • aa1049372051
  • 2016-07-12 16:21:18
  • 5640

Python Tkinter教程之Event篇(2)

'''Tkinter教程之Event篇(2)''' '''5.测试离开(Leave)事件''' # -*- coding: cp936 -*- # leave:鼠标离开时产生此事件 from ...
  • zhou191954
  • zhou191954
  • 2012-12-16 23:27:04
  • 1310

Python Tkinter 事件和映射

Events and Bindings As was mentioned earlier, a Tkinter application spends most of its time...
  • bnanoou
  • bnanoou
  • 2014-08-08 09:28:04
  • 10285

Tkinter教程之Event篇

'''Tkinter教程之Event篇(1)''' # 事件的使用方法 '''1.测试鼠标点击(Click)事件''' # -*- coding: cp936 -*- # :鼠标左击事件 #...
  • jkhere
  • jkhere
  • 2013-03-30 15:16:15
  • 2125

Tkinter教程之Event篇(2)

Tkinter教程之Event篇(2)5.测试离开(Leave)事件# -*- coding: cp936 -*-# leave:鼠标离开时产生此事件from Tkinter import *root...
  • jcodeer
  • jcodeer
  • 2007-10-13 21:14:00
  • 5057
收藏助手
不良信息举报
您举报文章:Tkinter教程之Event篇(2)
举报原因:
原因补充:

(最多只允许输入30个字)