1.事件绑定函数(3个)

  组件.bind('事件类型',事件函数)

    为一个组件绑定一个操作

  组件.bind_class('组件类型','事件类型',事件函数)

    为一个类组件绑定一个操作

  组件.bind_all('事件类型',事件函数)

    为所有组件绑定一个操作(所有操作都会当作对主界面的操作)

2.事件类型

3.事件对象

################事件绑定的案例1:

            鼠标进入组件变红,离开组件变白

# 单行文本输入框
entry = tkinter.Entry(root)
entry.pack()
# 事件函数
def changered(eventobj):
# 通过事件对象获取得到组件
eventobj.widget['bg'] = 'red'#鼠标进入组件变红
def wdc(eventobj):
eventobj.widget['bg'] = 'white'#鼠标离开组件变白
# 事件绑定
entry.bind('<Enter>',changered)
entry.bind('<Leave>',wdc)

注意:通过绑定函数操作,对应的事件函数,必须有形参接受事件对象。

   #事件函数必须在绑定之前定义

################事件绑定的案例2:

              键盘快捷键触发事件:按快捷键改变窗口背景色

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口大小
root.minsize(300,200) # 变红色
def changer(eventobj):
eventobj.widget['bg'] = 'red' # 按Ctrl + r窗口变红色:两条命令 R和r都行
root.bind('<Control-KeyPress-r>',changer)
root.bind('<Control-KeyPress-R>',changer) # 加入消息循环
root.mainloop()

################事件绑定的案例3:(为一类组件绑定事件)

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口大小
root.minsize(300,200) # 按钮1
btn1 = tkinter.Button(root,text = '')
btn1.place(x = 20,y = 20,width = 40,height = 40)
# 按钮2
btn2 = tkinter.Button(root,text = '')
btn2.place(x = 80,y = 20,width = 40,height = 40)
# 按钮3
btn3 = tkinter.Button(root,text = '')
btn3.place(x = 140,y = 20,width = 40,height = 40)
# 按钮4
btn4 = tkinter.Button(root,text = '')
btn4.place(x = 20,y = 80,width = 40,height = 40)
# 按钮5
btn5 = tkinter.Button(root,text = '')
btn5.place(x = 80,y = 80,width = 40,height = 40)
# 按钮6
btn6 = tkinter.Button(root,text = '')
btn6.place(x = 140,y = 80,width = 40,height = 40) def changebg(wdc):
# 鼠标放到按钮上按钮变红
wdc.widget['bg'] = 'red'
def changebg1(wdc):
# 鼠标离开按钮上按钮变白
wdc.widget['bg'] = 'white'
# 绑定按钮鼠标进入事件
btn1.bind_class('Button','<Enter>',changebg)
btn1.bind_class('Button','<Leave>',changebg1) # 加入消息循环
root.mainloop()

################事件绑定的案例4:(为所有组件绑定事件)

            鼠标点击所有组件,Entry组件背景颜色都会变红

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口大小
root.minsize(300,200) # 按钮
btn1 = tkinter.Button(root,text = '###############')
btn1.pack()
# 输入框
entry = tkinter.Entry(root)
entry.pack()
# 多行输入框
text = tkinter.Text(root,width = 20,height = 5)
text.pack()
# 函数
def changeentry(e):
# 鼠标点击任意组件,Entry组件都会变红
entry['bg'] = 'red' # 事件绑定
btn1.bind_all('<Button-1>',changeentry) # 加入消息循环
root.mainloop()

python_tkinter事件的更多相关文章

  1. JNI详解---从不懂到理解

    转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...

  2. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  3. 关于 Chrome 浏览器中 onresize 事件的 Bug

    我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...

  4. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  5. C++中的事件分发

    本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...

  6. 移动端IOS点击事件失效解决方案

    解决方案 解决办法有 4 种可供选择: 1 将 click 事件直接绑定到目标元素(即 .target)上 2 将目标元素换成 <a> 或者 button 等可点击的元素 3 将 clic ...

  7. Android笔记——Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

  8. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  9. HTML 事件(二) 事件的注册与注销

    本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...

随机推荐

  1. 使用eclipse插件mybatis generator来自动生成实体类及映射文件

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  2. element-ui image放大 v2.x版本 点击无反应

    1.官网文档:由于官网上没有写对应组件的版本信息,默认是最新版本.所以在老版本里,可能还没有这个功能. 2.github源码日志:提交时间是2019.07.25,确认后发现老版本的确没有此功能. 3. ...

  3. [转帖]年度网络攻击大调查:SSH端口最易受网络攻击,HTTPS其次!

    年度网络攻击大调查:SSH端口最易受网络攻击,HTTPS其次! https://zhuanlan.kanxue.com/article-9431.htm 一般来说,人们会通过检查端口.更新设备等多种措 ...

  4. kubernetes 部署ingress

    kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理 ...

  5. K8S从入门到放弃系列-(2)集群根证书准备

    k8s从1.8版本开始,集群中各个组件需要使用TLS证书对通信进行加密,每个k8s集群都需要有独立的CA证书体系,这里我们采用比较常用的CloudFlare 的 PKI 工具集 cfssl 来生成 C ...

  6. RecursiveSequence(HDU-5950)【矩阵快速幂】

    题目链接: 题意:Si=S(i-1)+2*S(i-2)+i^4,求Sn. 思路:想到了矩阵快速幂,实在没想出来怎么构造矩阵.... 首先构造一个向量vec={a,b,16,8,4,2,1}. 在构造求 ...

  7. msql 数据类型

    1.数据类型 #1. 数字: 整型:tinyinit int bigint 小数: float :在位数比较短的情况下不精准 double :在位数比较长的情况下不精准 0.0000012301231 ...

  8. MongoDB 关系运算符及统计个数及跳过分页

    大于 ($gt).大于等于 ($gte ).小于 ($lt).大于等于 ($lte).等于($eq) 查询价格小于100的商品 db.product1.find({price:{$lt:100}}) ...

  9. python笔记005-字符串-列表-元组

    目录 1 上次作业补充拓展... 1 1.1 进制转换... 1 1.2 类型判断... 1 2 今日学习内容... 2 2.1 格式化输出... 2 2.2 基本运算符... 2 2.2.1 算术运 ...

  10. pandas数据结构之DataFrame笔记

    DataFrame输出的为表的形式,由于要把输出的表格贴上来比较麻烦,在此就不在贴出相关输出结果,代码在jupyter notebook可以顺利运行代码中有相关解释用来加深理解方便记忆 import ...