Tkinter教程之Event篇(3)
来源:互联网 发布:瞩目zhumu视频会议软件 编辑:程序博客网 时间:2024/05/16 07:49
'''Tkinter教程之Event篇(3)'''
'''11.两个事件同时绑定到一个控件'''
# -*- coding: cp936 -*-
# bind:将事件与处理函数
# 将两个事件绑定为同一个组件
# 为root绑定两个事件
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<Key>',event.keycode
# Return事件处理函数
def printReturn(event):
print '<Return>',event.keycode
root.bind('<Key>',printEvent)
root.bind('<Return>',printReturn)
root.mainloop()
# 当按键除了Return之外,都是由printEvent来处理
# 当按键为Return时,由printReturn来处理,即由最“近”的那个事件处理。
'''12.为一个instance绑定一个事件。'''
# bind:绑定instance的事件处理函数
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<Key>',event.keycode
# Return事件处理函数
def printReturn(event):
print '<Return>',event.keycode
# 使用bt1来添加一个事件处理函数。
bt1 = Button(root,text = 'instance event')
bt1.bind('<Key>',printEvent)
bt1.focus_set()
bt1.grid()
root.mainloop()
# 当按键时,程序调用一次printEvent
'''13.事件各个级别音传递'''
# -*- coding: cp936 -*-
# bind:绑定instance与toplevel
# bind_class:绑定类处理函数
# bind_all:绑定应用所有事件
# 事件级别间”传递"
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<instance>',event.keycode
# Return事件处理函数
def printToplevel(event):
print '<toplevel>',event.keycode
def printClass(event):
print '<bind_class>',event.keycode
def printAppAll(event):
print '<bind_all>',event.keycode
# 在instance级别与printEvent绑定
bt1 = Button(root,text = 'instance event')
bt1.bind('<Return>',printEvent)
# 在bt1的Toplevel级别与printToplevel绑定
bt1.winfo_toplevel().bind('<Return>',printToplevel)
# 在class级别绑定事件printClass
root.bind_class('Button','<Return>',printClass)
# 在application all级别绑定printAppAll
bt1.bind_all('<Return>',printAppAll)
# 将焦点定位到bt1上,回车一下,结果有4个打印输出。
bt1.focus_set()
bt1.grid()
root.mainloop()
# 输出结果:
# <instance> 13
# <bind_class> 13
# <toplevel> 13
# <bind_all> 13
# Return向高级别进行了“传递",调用顺序为instance/class/toplevel/all
'''14.使用bind_class的后果'''
# -*- coding: cp936 -*-
# bind_class:绑定整个类的事件处理函数,将影响所有这个类的instance
from Tkinter import *
root = Tk()
def printClass(event):
print '<bind_class>',event.keycode
# 改变button类的事件绑定
root.bind_class('Button','<Return>',printClass)
# 创建两个Button
bt1 = Button(root,text = 'a button')
bt2 = Button(root,text = 'another button')
bt1.focus_set()
bt1.grid()
bt2.grid()
root.mainloop()
# 回车,bt1打印结果
# TAB切换到bt2,回车同样打印出结果,即所有的Button对Return事件进行响应。
'''15.使用protocal绑定'''
# -*- coding: cp936 -*-
# protocol:与WM交互,绑定事件处理函数。
from Tkinter import *
root = Tk()
def printProtocol():
print 'WM_DELETE_WINDOW'
root.destroy()
# 使用protocol将WM_DELETE_WINDOW与printProtocol绑定
root.protocol('WM_DELETE_WINDOW',printProtocol)
root.mainloop()
# 程序在退出时打印'WM_DELETE_WINDOW'
'''11.两个事件同时绑定到一个控件'''
# -*- coding: cp936 -*-
# bind:将事件与处理函数
# 将两个事件绑定为同一个组件
# 为root绑定两个事件
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<Key>',event.keycode
# Return事件处理函数
def printReturn(event):
print '<Return>',event.keycode
root.bind('<Key>',printEvent)
root.bind('<Return>',printReturn)
root.mainloop()
# 当按键除了Return之外,都是由printEvent来处理
# 当按键为Return时,由printReturn来处理,即由最“近”的那个事件处理。
'''12.为一个instance绑定一个事件。'''
# bind:绑定instance的事件处理函数
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<Key>',event.keycode
# Return事件处理函数
def printReturn(event):
print '<Return>',event.keycode
# 使用bt1来添加一个事件处理函数。
bt1 = Button(root,text = 'instance event')
bt1.bind('<Key>',printEvent)
bt1.focus_set()
bt1.grid()
root.mainloop()
# 当按键时,程序调用一次printEvent
'''13.事件各个级别音传递'''
# -*- coding: cp936 -*-
# bind:绑定instance与toplevel
# bind_class:绑定类处理函数
# bind_all:绑定应用所有事件
# 事件级别间”传递"
from Tkinter import *
root = Tk()
# Key事件处理函数
def printEvent(event):
print '<instance>',event.keycode
# Return事件处理函数
def printToplevel(event):
print '<toplevel>',event.keycode
def printClass(event):
print '<bind_class>',event.keycode
def printAppAll(event):
print '<bind_all>',event.keycode
# 在instance级别与printEvent绑定
bt1 = Button(root,text = 'instance event')
bt1.bind('<Return>',printEvent)
# 在bt1的Toplevel级别与printToplevel绑定
bt1.winfo_toplevel().bind('<Return>',printToplevel)
# 在class级别绑定事件printClass
root.bind_class('Button','<Return>',printClass)
# 在application all级别绑定printAppAll
bt1.bind_all('<Return>',printAppAll)
# 将焦点定位到bt1上,回车一下,结果有4个打印输出。
bt1.focus_set()
bt1.grid()
root.mainloop()
# 输出结果:
# <instance> 13
# <bind_class> 13
# <toplevel> 13
# <bind_all> 13
# Return向高级别进行了“传递",调用顺序为instance/class/toplevel/all
'''14.使用bind_class的后果'''
# -*- coding: cp936 -*-
# bind_class:绑定整个类的事件处理函数,将影响所有这个类的instance
from Tkinter import *
root = Tk()
def printClass(event):
print '<bind_class>',event.keycode
# 改变button类的事件绑定
root.bind_class('Button','<Return>',printClass)
# 创建两个Button
bt1 = Button(root,text = 'a button')
bt2 = Button(root,text = 'another button')
bt1.focus_set()
bt1.grid()
bt2.grid()
root.mainloop()
# 回车,bt1打印结果
# TAB切换到bt2,回车同样打印出结果,即所有的Button对Return事件进行响应。
'''15.使用protocal绑定'''
# -*- coding: cp936 -*-
# protocol:与WM交互,绑定事件处理函数。
from Tkinter import *
root = Tk()
def printProtocol():
print 'WM_DELETE_WINDOW'
root.destroy()
# 使用protocol将WM_DELETE_WINDOW与printProtocol绑定
root.protocol('WM_DELETE_WINDOW',printProtocol)
root.mainloop()
# 程序在退出时打印'WM_DELETE_WINDOW'
- Tkinter教程之Event篇(3)
- Python Tkinter教程之Event篇(3)
- Tkinter教程之Event篇(3)
- Tkinter教程之Event篇(3)
- Tkinter教程之Event篇
- Tkinter教程之Event篇(1)'
- Tkinter教程之Event篇(2)
- '''Tkinter教程之Event篇(1)'''
- Python Tkinter教程之Event篇(1)
- Python Tkinter教程之Event篇(2)
- Tkinter教程之Event篇(1)
- Tkinter教程之Event篇(2)
- Tkinter教程之Event篇(2)
- Tkinter之Event篇
- Tkinter教程之Text篇(3)
- Tkinter教程之Canvas篇(3)
- Python Tkinter教程之Text篇(3)
- python--Tkinter教程之Canvas篇(3)
- Tkinter教程之Event篇(1)'
- java入门例子
- AJAX(Progress)学习
- Tkinter教程之Event篇(2)
- 最近忙死了~~
- Tkinter教程之Event篇(3)
- java的runtime.exec创建的线程被挂起的解决办法。
- 使用Tkinter做个日历
- 我的技术博客诞生了!欢迎大家多来捧场!
- AJAX 自定义异常管理
- 微软.NET Framework的开源之路
- Unix命令详解。
- 学习五子棋游戏设计的心得[原创]
- java中父类与子类构造函数的执行顺序