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教程-事件绑定

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

Tkinter教程之Event篇(1)'

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

Python Tkinter 事件和映射

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

[Tkinter 教程01] 入门: Label 控件

本文译自:  http://www.python-course.eu/tkinter_labels.php Hello Tkinter Label 下面我们将以 Tkinter 中最简单的控件...
  • liuxu0703
  • liuxu0703
  • 2017年01月24日 00:44
  • 2229

Tkinter教程之Button篇

文章转载自:http://blog.csdn.net/jcodeer/article/details/1811298 # Tkinter教程之Button篇(1) # Button功能触发事...
  • aa1049372051
  • aa1049372051
  • 2016年07月08日 11:27
  • 19283

Python之tkinter中文教程(最好的TK教程)

  • 2017年02月19日 15:01
  • 639KB
  • 下载

Tkinter教程

  • 2016年02月16日 15:31
  • 361KB
  • 下载

Tkinter教程之Button篇(1)

#Tkinter教程之Button篇(1)#Button功能触发事件1.一个简单的Button应用from Tkinter import *#定义Button的回调函数def helloButton(...
  • jcodeer
  • jcodeer
  • 2007年10月04日 18:33
  • 13238

Tkinter教程之Place篇

'''Tkinter教程之Place篇''' '''1.使用绝对坐标将组件放到指定的位置''' # -*- coding: utf-8 -*- # 不设置root的大小,使用默认 from tkint...
  • aa1049372051
  • aa1049372051
  • 2016年07月12日 11:06
  • 6784

Tkinter教程之Grid篇

Tkinter教程之Grid篇# Tkinter参考中最推荐使用的一个布局器。实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了。1.第一个Grid例子# -*- c...
  • jcodeer
  • jcodeer
  • 2007年10月06日 18:35
  • 13508
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tkinter教程之Event篇(3)
举报原因:
原因补充:

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