iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >[译][Tkinter 教程15] e
  • 806
分享到

[译][Tkinter 教程15] e

教程Tkinter 2023-01-31 08:01:07 806人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

已获原作者授权. 原系列地址: python Tkinter 简介 一个 Tkinter 应用生命周期中的大部分时间都处在一个消息循环 (event loop) 中. 它等待事件的发生: 事件可能是 按键按下, 鼠标点击, 鼠标移动 等

已获原作者授权. 原系列地址: python Tkinter

简介

一个 Tkinter 应用生命周期中的大部分时间都处在一个消息循环 (event loop) 中. 它等待事件的发生: 事件可能是 按键按下, 鼠标点击, 鼠标移动 等.
Tkinter 提供了用以处理相关事件的机制. 处理函数可以被绑定给各个控件的各种事件.
widget.bind(event, handler)
如果相关事件发生, handler 函数会被触发, 事件对象 event 会传递给 handler 函数.

#!/usr/bin/python3
# write tkinter as Tkinter to be Python 2.x compatible
from tkinter import *
def hello(event):
    print("Single Click, Button-l") 
def quit(event):                           
    print("Double Click, so let's stop") 
    import sys; sys.exit() 

widget = Button(None, text='Mouse Clicks')
widget.pack()
widget.bind('Button-1', hello)
widget.bind('Double-1', quit) 
widget.mainloop()

让我们再写一个例子, 用以处理上面提到的鼠标在控件内移动的事件:

from tkinter import *

def motion(event):
  print("Mouse position: (%s %s)" % (event.x, event.y))
  return

master = Tk()
whatever_you_do = "Whatever you do will be insignificant, but it is very important that you do 
it.\n(Mahatma Gandhi)"
msg = Message(master, text = whatever_you_do)
msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.bind('Motion',motion)
msg.pack()
mainloop()

事件

Tkinter 使用所谓的 事件队列 (event sequences) 暴露接口以绑定 handler 到相关事件. 事件以字符串的形式给出:

modifier-type-detail

type 字段是一个事件的关键字段. modiferdetail 字段则不是必要字段, 很多情况下这两个字段都不会被赋值. 这两个字段用以提供 type 所代表的事件的附加信息. type 字段描述事件种类, 比如 鼠标点击, 键位按下, 控件获得焦点 等.

Event Description
Button 某个鼠标按键在控件上被点击. detail 指定了哪一个按键被点击了, 比如, 鼠标左键点击为 Button-1, 鼠标中键点击为 Button-2, 鼠标右键点击为 Button-3, 向上滚动滑轮为 Button-4, 向下滚动滑轮为 Button-5. 如果在控件上按下鼠标的某个键并保持按下, Tkinter 将"抓住"该事件. 之后的鼠标事件, 比如 鼠标移动 或 鼠标按键释放 事件, 会被自动发送给该控件处理, 即使鼠标移动出该控件时依然如此. 鼠标相对当前控件的位置会被存储在 event 对象中的 x 和 y 字段中传递给回调函数.
Motion 鼠标在某个按键被按下时的移动事件. 鼠标左键点击为 B1-Motion, 鼠标中键点击为 B2-Motion, 鼠标右键点击为 B3-Motion. 鼠标相对当前控件的位置会被存储在 event 对象中的 x 和 y 字段中传递给回调函数.
ButtonRelease 按钮点击释放事件. 鼠标左键点击为 ButtonRelease-1, 鼠标中键点击为 ButtonRelease-2, 鼠标右键点击为 ButtonRelease-3. 鼠标相对当前控件的位置会被存储在 event 对象中的 x 和 y 字段中传递给回调函数.
Double-Button 鼠标双击事件. 鼠标左键点击为 Double-Button-1, 鼠标中键点击为 Double-Button-2, 鼠标右键点击为 Double-Button-3. Double 和 Triple 都可以被用作前缀. 注意: 如果同时绑定单击事件 (Button-1) 和双击事件 (Double-Button-1), 则两个回调都会被调用.
Enter 鼠标移入控件事件. 注意: 这个事件不是 Enter 键按下事件, Enter 按下事件是 Return.
Leave 鼠标移出控件事件.
FocusIn 控件或控件的子空间获得键盘焦点.
FocusOut 控件丢失键盘焦点 (焦点移动到另一个控件).
Return Enter 点击事件. 键盘上的所有键位都可以被绑定. 特殊键位名称包括 Cancel, BackSpace, Tab, Return (Enter), Shift_L (任意 Shift), Control_L (任意 Control), Alt_L (任意 Alt), Pause, Caps_Lock, Escape, Prior (Page Up), Next (Page Down), End, Home, Left, Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Num_Lock, and Scroll_Lock
Key 键盘按键点击事件. 键值被存储在 event 对象中传递. (特殊键位会传递空键值).
a "a" 键被点击. 其他字符也可以如此定义. 特殊情况包括 空格 (space) 和 小于号 (less). 注意 "1" 是绑定键盘键位, 而 1 则是按钮绑定.
Shift-Up 在 shift 被按下时点击 up 键. 同样的, 也有 Alt-Up, Control-Up 事件.
Configure 控件大小改变事件. 新的控件大小会存储在 event 对象中的 width 和 height 属性传递. 有些平台上该事件也可能代表控件位置改变.

全系列:
[译][Tkinter 教程01] 入门: Label 控件
[译][Tkinter 教程02] Message 控件
[译][Tkinter 教程03] Button 控件
[译][Tkinter 教程04] Variable 类
[译][Tinkter 教程05] Radiobutton 控件
[译][Tkinter 教程06] Checkbox 控件
[译][Tkinter 教程07] Entry 控件
[译][Tkinter 教程08] canvas 图形绘制
[译][Tkinter 教程09] Scale 控件
[译][Tkinter 教程10] Text 控件
[译][Tkinter 教程11] 对话框和消息框
[译][Tkinter 教程12] 布局管理 (Pack Place Grid)
[译][Tkinter 教程13] Mastermind 游戏
[译][Tkinter 教程14] menu 菜单
[译][Tkinter 教程15] event 事件绑定
译者水平有限, 如有疏漏, 欢迎指正.
已获得原作者授权. 原文地址: Events and Binds

--结束END--

本文标题: [译][Tkinter 教程15] e

本文链接: https://www.lsjlt.com/news/193153.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • [译][Tkinter 教程15] e
    已获原作者授权. 原系列地址: Python Tkinter 简介 一个 Tkinter 应用生命周期中的大部分时间都处在一个消息循环 (event loop) 中. 它等待事件的发生: 事件可能是 按键按下, 鼠标点击, 鼠标移动 等...
    99+
    2023-01-31
    教程 Tkinter
  • Django 博客开发教程 15 -
    在 使用 Nginx 和 Gunicorn 部署 Django 博客 中,我们通过手工方式将代码部署到了服务器。整个过程涉及到十几条命令,输了 N 个字符。一旦我们本地的代码有更新,整个过程又得重复来一遍,这将变得非常繁琐。 使用 Fab...
    99+
    2023-01-31
    教程 博客 Django
  • coverage教程(译)
    欢迎大家光临我的博客 简介 coverage是一个检测单元测试覆盖率的工具,即检查你的测试用例是否覆盖到了所有的代码。 coverage命令行工具   当你通过pip install coverage成功安装完coverage后,就会在...
    99+
    2023-01-31
    教程 coverage
  • Python爬虫入门教程 15-100
    石家庄政民互动数据爬取-写在前面 今天,咱抓取一个网站,这个网站呢,涉及的内容就是 网友留言和回复,特别简单,但是网站是gov的。网址为 http://www.sjz.gov.cn/col/1490066682000/index.html...
    99+
    2023-01-30
    爬虫 入门教程 Python
  • python图形界面教程(tkinter)
    1、图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元素触发指令,并从标签、对话框等图型化显示容器中获取人机对话信息。 P...
    99+
    2023-09-13
    python
  • PythonGUI之tkinter布局管理教程
    目录pack常用属性pack类提供了下列函数(使用组件实例对象调用)grid属性设置grid类提供了下列函数(使用组件实例对象调用)place属性设置place类提供了下列函数(使用...
    99+
    2022-11-11
  • python Tkinter的简单入门教程
    目录设计代码逐步解释我们将编写一个英尺和米的转换程序,通过这个程序,我们将会了解一个真正的实用程序该怎么设计和编写,我们也将会了解到 Tk 程序内部的基本样子。不必完全掌握里面的所有...
    99+
    2022-11-12
  • navicat premium 15 下载安装详细教程
    navicat premium 15 下载安装详细教程 一、准备安装文件 首先我们要准备好 navicat premium 15 官网:http://www.navicat.com.cn 下载地址:N...
    99+
    2023-09-08
    数据库 mysql sql
  • python图形界面教程Tkinter详解
    目录1、Tkinter是什么2、Tkinter创建窗口①导入 tkinter的库 ,创建并显示窗口②修改窗口属性③创建按钮④窗口内的组件布局3、Tkinter布局用法①基本界面、la...
    99+
    2022-12-19
    python tkinter详解教程 python tkinter布局 Tkinter教程
  • 在Windows上安装TkInter:完整教程
    在Windows上安装TkInter:完整教程 如果你正在寻找一种可在Windows上使用的GUI库,那么TkInter是一个非常好的选择。但是,如果你手头的资源中没有TkInter,则你需要使用下面...
    99+
    2023-09-15
    python 开发语言 Python
  • python教程:15种字符串操作方法
    字符串是 字符的序列 。字符串基本上就是一组单词。我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内容。下面告诉你如何在Python中使用字符串。 1. 字符串定义 ...
    99+
    2023-10-09
    python 开发语言
  • Android学习教程之日历库使用(15)
    本教程为大家分享了Android日历库的使用方法,供大家参考,具体内容如下 MainActivity.java代码: package siso.weekv; import a...
    99+
    2022-06-06
    android学习 程之 教程 Android
  • Navicat for MySQL 15注册激活详细教程
    下载Navicat for MySQL 15 https://www.navicat.com.cn/download/navicat-for-mysql 下载激活工具 链接: https://pan.baidu.co...
    99+
    2022-05-13
    Navicat for MySQL 15注册激活 Navicat for MySQL 激活
  • Python tkinter(GUI编程)模块最完整教程(上)
    提示:下滑文章左侧可以查看目录! 1 走进tkinter世界 1.1 认识tkinter tkinter是一个GUI开发模块,是Tcl/Tk语言在Python上的接口,可以在大部分操作系统上运行。tkinter非常的简单而且好用。tkint...
    99+
    2023-08-31
    python 开发语言
  • 联想小新15重装win10的步骤教程
    联想小新Air 15怎么重装win10?小新Air 15笔记本电脑是一款15.6英寸大小的笔记本,但是是相同大小的拯救者相比小新Air15会小很多!下面我们来说说联想小新15重装win10的步骤教程,大家快来学习一下吧。1、首先给电脑C盘文...
    99+
    2023-07-13
  • MySQL-5.5.28编译安装教程
    下文主要给大家带来MySQL-5.5.28编译安装教程,希望这些内容能够带给大家实际用处,这也是我编辑MySQL-5.5.28编译安装教程这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。安装环境:系...
    99+
    2022-10-18
  • Linux下nginx编译安装教程
    本篇内容介绍了“Linux下nginx编译安装教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、必要软件准备1.安装pcre为了支持re...
    99+
    2023-06-05
  • Android APK反编译图文教程
    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的...
    99+
    2022-06-06
    apk反编译 apk 教程 Android
  • 编译安卓内核教程(2023,6,13)
    编译安卓内核前需要准备的东西。 一台支持解锁bootloader的手机官方开源地址,或者第三方整合好的也行一个linux环境,虚拟机、wsl、termux等都可以看得懂中文 开始操作! 一、 从你的手机里面提取config.gz文件,在/p...
    99+
    2023-08-17
    android git linux bash
  • 有关SuSE11编译安装MySQL5.7.22教程
    本文主要给大家简单讲讲SuSE11编译安装MySQL5.7.22教程,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望SuSE11编译安装MySQL5.7.22...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作