Tkinter教程之Event篇(3)

原创 2007年10月13日 21:15:00
'''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'
 

相关文章推荐

Python Tkinter 事件和映射

Events and Bindings As was mentioned earlier, a Tkinter application spends most of its time...
  • bnanoou
  • bnanoou
  • 2014年08月08日 09:28
  • 6683

python tkinter教程-事件绑定

一个Tkinter主要跑在mainloop进程里。Events可能来自多个地方,比如按键,鼠标,或是系统事件。 Tkinter提供了丰富的方法来处理这些事件。对于每一个控件Widge,你都可以为其绑...

Tkinter教程之Event篇(1)'

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

Tkinter教程之Event篇

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

[Tkinter 教程15] event 事件绑定

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

Python 3基础教程33-tkinter模块创建一个window窗体

本文开始介绍利用Python做一些GUI编程,这里先介绍如何利用tkinter模块创建一个window窗体。 # tkinter 模块创建一个窗体 from tkinter import * ''...

python3 tkinter教程

tk官网的教程学习:http://www.tkdocs.com/tutorial/firstexample.html#导入tkinter模块,以及导入ttk模块,tkinter是python结合tk的...

Python 3基础教程36-tkinter创建菜单

本文来介绍tkinter下的菜单创建过程,我们用过很多记事本软件,第一个菜单一般是File,File下面有保存,退出等按钮,第二个菜单是Edit,编辑菜单有撤销等功能。我们下面的代码大致可以模仿实现这...

Python 3基础教程34-tkinter添加一个按钮

在前面一篇文章的基础上,我们在上个窗体上添加一个按钮。 # tkinter 模块添加一个按钮 from tkinter import * ''' 开始接触桌面图形界面编程 你可以到安装路径:\li...

python-Tkinter教程之Canvas篇(2)

'''Tkinter教程之Canvas篇(2)''' '''9.创建item的tags''' # -*- coding: cp936 -*- # 使用属性tags设置item的tag # 使用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tkinter教程之Event篇(3)
举报原因:
原因补充:

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