码迷,mamicode.com
首页 > 其他好文 > 详细

Tkinter教程之Event篇(3)

时间:2014-09-21 13:41:40      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   使用   ar   art   sp   log   

本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550

‘‘‘Tkinter教程之Event篇(3)‘‘‘
bubuko.com,布布扣‘‘‘11.两个事件同时绑定到一个控件‘‘‘
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣# bind:将事件与处理函数
bubuko.com,布布扣# 将两个事件绑定为同一个组件
bubuko.com,布布扣# 为root绑定两个事件
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣# Key事件处理函数
bubuko.com,布布扣def printEvent(event):
bubuko.com,布布扣    print ‘<Key>‘,event.keycode
bubuko.com,布布扣# Return事件处理函数
bubuko.com,布布扣def printReturn(event):
bubuko.com,布布扣    print ‘<Return>‘,event.keycode
bubuko.com,布布扣root.bind(‘<Key>‘,printEvent)
bubuko.com,布布扣root.bind(‘<Return>‘,printReturn)
bubuko.com,布布扣
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 当按键除了Return之外,都是由printEvent来处理
bubuko.com,布布扣# 当按键为Return时,由printReturn来处理,即由最“近”的那个事件处理。
bubuko.com,布布扣‘‘‘12.为一个instance绑定一个事件。‘‘‘
bubuko.com,布布扣# bind:绑定instance的事件处理函数
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣# Key事件处理函数
bubuko.com,布布扣def printEvent(event):
bubuko.com,布布扣    print ‘<Key>‘,event.keycode
bubuko.com,布布扣# Return事件处理函数
bubuko.com,布布扣def printReturn(event):
bubuko.com,布布扣    print ‘<Return>‘,event.keycode
bubuko.com,布布扣# 使用bt1来添加一个事件处理函数。
bubuko.com,布布扣bt1 = Button(root,text = ‘instance event‘)
bubuko.com,布布扣bt1.bind(‘<Key>‘,printEvent)
bubuko.com,布布扣bt1.focus_set()
bubuko.com,布布扣bt1.grid()
bubuko.com,布布扣
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 当按键时,程序调用一次printEvent
bubuko.com,布布扣‘‘‘13.事件各个级别音传递‘‘‘
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣# bind:绑定instance与toplevel
bubuko.com,布布扣# bind_class:绑定类处理函数
bubuko.com,布布扣# bind_all:绑定应用所有事件
bubuko.com,布布扣# 事件级别间”传递"
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣# Key事件处理函数
bubuko.com,布布扣def printEvent(event):
bubuko.com,布布扣    print ‘<instance>‘,event.keycode
bubuko.com,布布扣# Return事件处理函数
bubuko.com,布布扣def printToplevel(event):
bubuko.com,布布扣    print ‘<toplevel>‘,event.keycode
bubuko.com,布布扣def printClass(event):
bubuko.com,布布扣    print ‘<bind_class>‘,event.keycode
bubuko.com,布布扣def printAppAll(event):
bubuko.com,布布扣    print ‘<bind_all>‘,event.keycode
bubuko.com,布布扣
bubuko.com,布布扣# 在instance级别与printEvent绑定
bubuko.com,布布扣bt1 = Button(root,text = ‘instance event‘)
bubuko.com,布布扣bt1.bind(‘<Return>‘,printEvent)
bubuko.com,布布扣
bubuko.com,布布扣# 在bt1的Toplevel级别与printToplevel绑定
bubuko.com,布布扣bt1.winfo_toplevel().bind(‘<Return>‘,printToplevel)
bubuko.com,布布扣
bubuko.com,布布扣# 在class级别绑定事件printClass
bubuko.com,布布扣root.bind_class(‘Button‘,‘<Return>‘,printClass)
bubuko.com,布布扣
bubuko.com,布布扣# 在application all级别绑定printAppAll
bubuko.com,布布扣bt1.bind_all(‘<Return>‘,printAppAll)
bubuko.com,布布扣
bubuko.com,布布扣# 将焦点定位到bt1上,回车一下,结果有4个打印输出。
bubuko.com,布布扣bt1.focus_set()
bubuko.com,布布扣bt1.grid()
bubuko.com,布布扣
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 输出结果:
bubuko.com,布布扣# <instance> 13
bubuko.com,布布扣# <bind_class> 13
bubuko.com,布布扣# <toplevel> 13
bubuko.com,布布扣# <bind_all> 13
bubuko.com,布布扣# Return向高级别进行了“传递",调用顺序为instance/class/toplevel/all
bubuko.com,布布扣‘‘‘14.使用bind_class的后果‘‘‘
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣# bind_class:绑定整个类的事件处理函数,将影响所有这个类的instance
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣
bubuko.com,布布扣def printClass(event):
bubuko.com,布布扣    print ‘<bind_class>‘,event.keycode
bubuko.com,布布扣
bubuko.com,布布扣# 改变button类的事件绑定
bubuko.com,布布扣root.bind_class(‘Button‘,‘<Return>‘,printClass)
bubuko.com,布布扣# 创建两个Button
bubuko.com,布布扣bt1 = Button(root,text = ‘a button‘)
bubuko.com,布布扣bt2 = Button(root,text = ‘another button‘)
bubuko.com,布布扣
bubuko.com,布布扣bt1.focus_set()
bubuko.com,布布扣bt1.grid()
bubuko.com,布布扣bt2.grid()
bubuko.com,布布扣
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 回车,bt1打印结果
bubuko.com,布布扣# TAB切换到bt2,回车同样打印出结果,即所有的Button对Return事件进行响应。
bubuko.com,布布扣‘‘‘15.使用protocal绑定‘‘‘
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣# protocol:与WM交互,绑定事件处理函数。
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣
bubuko.com,布布扣def printProtocol():
bubuko.com,布布扣    print ‘WM_DELETE_WINDOW‘
bubuko.com,布布扣    root.destroy()
bubuko.com,布布扣
bubuko.com,布布扣# 使用protocol将WM_DELETE_WINDOW与printProtocol绑定
bubuko.com,布布扣root.protocol(‘WM_DELETE_WINDOW‘,printProtocol)
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 程序在退出时打印‘WM_DELETE_WINDOW‘

Tkinter教程之Event篇(3)

标签:des   blog   http   io   使用   ar   art   sp   log   

原文地址:http://www.cnblogs.com/LeeZz/p/3984350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!