欢迎来到天天文库
浏览记录
ID:8809075
大小:23.91 KB
页数:4页
时间:2018-04-08
《python-tkinter事件处理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Python-Tkinter事件处理所谓event事件就是程序上发生的事。例如用户敲击键盘上的某一个键或是点击移动鼠标。而对于这些事件,程序需要做出反应。Tkinter提供的组件通常都包含许多内在行为,例如当按钮所谓event事件就是程序上发生的事。例如用户敲击键盘上的某一个键或是点击移动鼠标。而对于这些事件,程序需要做出反应。Tkinter提供的组件通常都包含许多内在行为,例如当按钮被点击时执行特定操作或是当一个输入栏成为焦点,而您又敲击了键盘上的某些按键,您所输入的内容就会显示在输入栏内。不过,Tkinter的事件处理允许您创建、修改或是删除这些
2、行为。首先给出如下定义: 事件处理者:程序中在当事件发生时被调用的某个函数。当您为您的程序建立一个处理某一事件的事件处理者,称之为绑定。 绑定级别: 三个级别: 实例绑定:将事件与一特定的组件实例绑定。例如您可以将按下PageUp按键这一事件与一个Canvas组件实例绑定,来处理Canvas的翻页。调用组件实例的.bind()函数为组件实例绑定事件。例如,假设您声明了一个名为canvas的Canvas组件对象。您想在canvas上,当按下鼠标中键时画上一条线。您可以这样实现:canvas.bind(“
3、”,drawline)其中bind函数的第一个参数是事件描述符,他指定无论什么时候在canvas上,当按下鼠标中键时就调用事件处理函数drawline进行画线的任务。特别的是:drawline后面的圆括号是省略的。Tkinter会将此函数填入相关参数后调用运行。在这里只是连结性声明而以。 类绑定:将事件与一组件类绑定。例如您可以绑定按钮组件类,使得所有按钮实例都可以处理鼠标中键事件作相应的操作。调用任意组件实例的.bind_class()函数为特定组件类绑定事件。例如,假设您声明了若干个Canvas组件对象。您想在这些对象上,当按下鼠标中键
4、时都能画上一条线。您可以这样实现:widget.bind_class(“Canvas”,“”,drawline)其中widget是任意组件对象。 程序界面绑定:当无论在哪一组件实例上触发某一事件,程序都作出相应的处理。例如您可能会将PrintScreen键与程序中的所有组件对象绑定,这样的话整个程序界面就能处理打印屏幕的事件了。调用任意组件实例的.bind_all()函数为程序界面绑定事件。例如您可以这样实现打印屏幕:widget.bind_all(“”,printScreen)。 事件队列:
5、 Tkinter为您定义正确的事件提供了强大的通用方式。一般来说,事件队列是包含了一个或多个事件类型的字符串。每一个事件类型指定了一项事件,当有多项事件类型包含于事件队列中,当且仅当描述符中全部事件发生时才调用处理函数。 事件类型的通用格式: <[modifier-]…type[-detail]> 事件类型必须放置于尖括号<>内。type描述了通用类型,例如键盘按键、鼠标点击。modifier用于组合键定义,例如Control、Alt。detail用于明确定义是哪一个键或按钮的事件,例如1表示鼠标左
6、键、2表示鼠标中键。 举例: 按下鼠标左键。 按下键盘上的A键 同时按下了Control、Shift、A三键。 事件类型: 键盘事件: 名 称 描 述KeyPress按下键盘某键时触发,可以在detail部分指定是哪个键。KeyRelease按下键盘某键时触发,可以在detail部分指定是哪个键。
7、 鼠标事件: 名 称 描 述ButtonPress按下鼠标某键,可以在detail部分指定是哪个键。ButtonRelease释放鼠标某键,可以在detail部分指定是哪个键。Motion点中组件的同时托拽组件移动时触发。Enter当鼠标指针移进某组件时,该组件触发。Leave当鼠标指针移出某组件时,该组件触发。MouseWheel当鼠标滚轮滚动时触发。 窗体事件: 名 称 描 述Visibility当组件变为可视状态时触发。Unmap当组件由显示状态变为隐藏状态时
8、触发。Map当组件由隐藏状态变为显示状态时触发。Expose当组件从原本被其他组件遮盖的状态中暴露出来时触发
此文档下载收益归作者所有