



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python-Tkinter事件处理所谓 event 事件就是程序上发生的事。例如用户敲击键盘上的某一个键或是点击移动鼠标。而对于这些事件,程序需要做出反应。 Tkinter 提供的组件通常都包含许多内在行为,例如当按钮所谓event事件就是程序上发生的事。例如用户敲击键盘上的某一 个键或是点击移动鼠标。而对于这些事件,程序需要做出反应。Tkinter提供的组件通常都包含许多内在行为,例如当按钮被点击时执行特定操作或是当一个输入栏 成为焦点,而您又敲击了键盘上的某些按键,您所输入的内容就会显示在输入栏内。不过,Tkinter的事件处理允许您创建、修改或是删除这些行为。首先给出如下定义: 事件处理者:程序中在当事件发生时被调用的某个函数。当您为您的程序建立一个处理某一事件的 事件处理者,称之为绑定。绑定级别: 三个级别: 实例绑定:将事件与一特定的组件实例绑定。例如您可以将按下PageUp按键这一事件与一个Canvas组件实例绑定,来处理Canvas的翻页。调用组件实例的.bind()函数为组件实例绑定事件。例如,假设您声明了一 个名为canvas的Canvas组件对象。您想在canvas上,当按下鼠标中键时画上一条线。您可以这样实 现:canvas.bind(“”, drawline)其中bind函数的第一个参数是事件描述符,他指定无论什么时候在canvas上,当按下鼠标中键时就调用事件处理函数drawline进行画线的任务。特别的是:drawline后面的圆括号是省略的。Tkinter会将此函数填入相关参数后调用运行。在这里只是 连结性声明而以。 类绑定:将事件与一组件类绑定。例如您可以绑定按钮组件类,使得所有按钮实例都可以处 理鼠标中键事件作相应的操作。调用任意组件实例的.bind_class()函 数为特定组件类绑定事件。例如,假设您声明了若干个Canvas组 件对象。您想在这些对象上,当按下鼠标中键时都能画上一条线。您可以这样实现:widget.bind_class(“Canvas”, “”, drawline)其中widget是任意组件对象。 程序界面绑 定:当无论在哪一组件实例上触发某一事件,程序都作出相应的处理。例如您可能会将PrintScreen键 与程序中的所有组件对象绑定,这样的话整个程序界面就能处理打印屏幕的事件了。调用任意组件实例的.bind_all()函数为程序界面绑定事件。例如您可以这样实现打印屏幕:widget.bind_all( “”,printScreen)。事件队列: Tkinter为您定义正确的事件提供了强大的通用方式。一般来说,事件队列是包含了 一个或多个事件类型的字符串。每一个事件类型指定了一项事件,当有多项事件类型包含于事件队列中,当且仅当描述符中全部事件发生时才调用处理函数。 事件类型的通用格式: 事件类型必须放 置于尖括号内。type描述了通用类型,例如键盘按键、鼠标点击。modifier用于组合键定 义,例如Control、Alt。detail用于明确定义是哪一个键或按钮的事件,例如1表示鼠标左键、2表 示鼠标中键。 举例: 按下鼠标 左键。 按下键盘上的A键 同时按下了Control、Shift、A三 键。 事件类型: 键 盘事件:名 称 描 述KeyPress按下键 盘某键时触发,可以在detail部分指定是哪个 键。KeyRelease按下键 盘某键时触发,可以在detail部分指定是哪个 键。 鼠标事件:名 称 描 述ButtonPress按下鼠 标某键,可以在detail部分指定是哪个键。ButtonRelease释放鼠 标某键,可以在detail部分指定是哪个键。Motion点中组 件的同时托拽组件移动时触发。Enter当鼠标 指针移进某组件时,该组件触发。Leave当鼠标 指针移出某组件时,该组件触发。MouseWheel当鼠标 滚轮滚动时触发。 窗体事件:名 称 描 述Visibility当组件 变为可视状态时触发。Unmap当组件 由显示状态变为隐藏状态时触发。Map当组件 由隐藏状态变为显示状态时触发。Expose当组件 从原本被其他组件遮盖的状态中暴露出来时触发。FocusIn组件获 得焦点时触发。FocusOut组件失 去焦点时触发。Circulate当窗体 由于系统协议要求在堆栈中置顶或压底时触发,Tk中 忽略此细节。Colormap当窗体 的颜色或外貌改变时触发,Tk中忽略此细节。GravityTk中忽略此细节。ReparentTk中忽略此细节。Configure当改变 组件大小时触发。例如托拽窗体边缘。Property当窗体 的属性被删除或改变时触发,属于Tk的核心事件。 不于窗体相关联。Destroy当组件 被销毁时触发。Activate与组件 选项中的state项有关,表示组件由不可用转为 可用。例如按钮由disabled(灰色)转为enabled。Deactivate与组件 选项中的state项有关,表示组件由可用转为不 可用。例如按钮由enabled转为disabled(灰色)。 事件前缀: 名 称 描 述Alt当Alt键按下Any任何按 键按下,例如ControlControl键按下Double两个事 件在短时间内发生,例如双击鼠标左键Lock当Caps Lock键按下Shift当Shift键按下Triple类似于Double,三个事件短时间内发生。你可以短格式表示事 件,例如:等同于、等同于对于大多数的单字符按 键,你还可以忽略“”符号。但是空格键和尖括号键不能这样做(正确的表示分别为、) 按键名: 通用格式中的detail部 分描述的是KeyPress事件和KeyRelease事 件类型中特指的按键。下表描述了采用若干种不同的方式来命名按键。 .keysym列用字符串命名了按键,它可以从Event事件对象中的keysym属性中获得。 .keycode列用按键码命名了按键,但是它不能反映事件前 缀:Alt、Control、Shift、Lock,并且它不区分大小写写按键,即输 入a和A是相同的键码。 .keysym_num列用数字代码命名了按键。 Key列描述了键盘上的按键名,方便一一对应。列表以美式101键盘 为例:.keysym.keycode.keysym
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)后妈伪造协议书
- (2025年标准)河岸青苗补偿协议书
- (2025年标准)合作店铺股份协议书
- (2025年标准)合同谅解协议书
- (2025年标准)氦气球放飞协议书
- 2025年新感情破裂协议书
- (2025年标准)签订扶贫协议书
- (2025年标准)生猪承运协议书
- 2025-2026学年福建省三明市第二中学高三生物第一学期期末经典试题
- 2025年新所得收益管理协议书
- 2025年浪浪山小妖怪开学第一课
- 2025年安顺西秀区招聘城市社区工作者考试笔试试题(含答案)
- 2025-2026秋“1530”安全教育记录表
- 催乳相关培训知识课件
- 2025汽车智能驾驶技术及产业发展白皮书
- 2025年幼儿园食堂从业人员培训测试题(含答案)
- 会计档案培训课件
- 施工临时用水用电方案(3篇)
- 2025福建漳州市交通发展集团有限公司招聘试题及答案
- 2025年职业卫生技术服务专业技术人员考试(放射卫生检测与评价)历年参考题库含答案详解(5卷)
- PE管道铺设质量检测方案
评论
0/150
提交评论