python_tkinter事件
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事件的更多相关文章
- JNI详解---从不懂到理解
转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- 关于 Chrome 浏览器中 onresize 事件的 Bug
我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- C++中的事件分发
本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...
- 移动端IOS点击事件失效解决方案
解决方案 解决办法有 4 种可供选择: 1 将 click 事件直接绑定到目标元素(即 .target)上 2 将目标元素换成 <a> 或者 button 等可点击的元素 3 将 clic ...
- Android笔记——Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- HTML 事件(一) 事件的介绍
本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...
- HTML 事件(二) 事件的注册与注销
本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...
随机推荐
- liunx -bash:ls:command not found,执行命令总是报找不到
解决办法: 使用绝对命令vi打开profile /bin/vi /etc/profile 添加: export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/ ...
- 【坑】使用IDEA创建maven的时候,提示缺少plugin-clean 等
解决方法 检查你的网络,能否访问 maven 中央仓库 : 在 IDEA 中是否对 maven 进行了配置 IDEA 默认使用的 仓库 和 配置文件,都是 .m2 下面的: 如果你自己对 maven ...
- BinaryTree(HDU-5573)【思维/构造】
题目链接:https://vjudge.net/problem/HDU-5573 题意:一棵二叉树,编号代表对应节点的取值,可以走k步,每次走的层数递增,问能够达到N的方案. 思路:首先看一下数据范围 ...
- C++万能头文件<bits/stdc++.h>的内容与优缺点
最近发现了一个C++的头文件bits/stdc++.h,听说这是一个几乎包含了所有C++库函数的头文件,就想更深入的了解一下,下面是头文件内容 // C++ includes used for pre ...
- ubuntu装openssh-client和openssh-server
1. 修改update源 进入/etc/apt/目录,首先用cp命令将sources.list备份成sources.list.bk,然后复制http://www.cnblogs.com/eastson ...
- 关于__new__和__init__
关于__new__和__init__ 例如一个类 class Foo(object): def __init__(self): print(1) def __new__(self): print(2) ...
- 南宁AI项目
1.能了解并对项目整体进度情况有清晰的认识,什么时间点需要完成什么工作项. 2.认识了解项目干系人,能和客户独立沟通交流,理解现场业务,不要一问三不知,什么情况都不了. 3.能推动项目进展和问题及时处 ...
- Python考试_第三次
- python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解释生成 ...
- 安装Nvida 显示环境
查看是否能正确加载nvidia 驱动 在终端输入 (glxinfo 需要安装mesa-utils) 如果可以正确加载了nvidia驱动 那么在输入的内容中可以看到NVIDIA 字样 如果GPU是Int ...
- springboot启动流程(三)Environment简介
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 简介 上一篇文章中,我们简单了解了一下SpringApplication的run方法的代码逻辑 ...