python_tkinter事件类型详情


Posted in Python onMarch 20, 2022

1.事件绑定函数

事件绑定函数有三个如下:       

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

为一个组件绑定一个操作

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

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

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

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

2.事件类型

python_tkinter事件类型详情

python_tkinter事件类型详情

python_tkinter事件类型详情

3.事件对象

python_tkinter事件类型详情

事件绑定的案例1:

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

python_tkinter事件类型详情

# 单行文本输入框
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:

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

python_tkinter事件类型详情

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:(为一类组件绑定事件)

python_tkinter事件类型详情

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口大小
root.minsize(300,200)

# 按钮1
btn1 = tkinter.Button(root,text = '1')
btn1.place(x = 20,y = 20,width = 40,height = 40)
# 按钮2
btn2 = tkinter.Button(root,text = '2')
btn2.place(x = 80,y = 20,width = 40,height = 40)
# 按钮3
btn3 = tkinter.Button(root,text = '3')
btn3.place(x = 140,y = 20,width = 40,height = 40)
# 按钮4
btn4 = tkinter.Button(root,text = '4')
btn4.place(x = 20,y = 80,width = 40,height = 40)
# 按钮5
btn5 = tkinter.Button(root,text = '5')
btn5.place(x = 80,y = 80,width = 40,height = 40)
# 按钮6
btn6 = tkinter.Button(root,text = '6')
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组件背景颜色都会变红:

python_tkinter事件类型详情

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事件类型详情的文章就介绍到这了,更多相关python_tkinter事件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用pil生成图片验证码的方法
May 08 Python
python返回昨天日期的方法
May 13 Python
python实现的简单抽奖系统实例
May 22 Python
python 数据的清理行为实例详解
Jul 12 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
python爬虫实现获取下一页代码
Mar 13 Python
python pymysql库的常用操作
Oct 16 Python
python中把元组转换为namedtuple方法
Dec 09 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
基于Python实现对比Exce的工具
Apr 07 Python
再谈python_tkinter弹出对话框创建
python_tkinter弹出对话框创建
Mar 20 #Python
Python读写yaml文件
Mar 20 #Python
PO模式在selenium自动化测试框架的优势
Python IO文件管理的具体使用
Python实现Excel文件的合并(以新冠疫情数据为例)
Python中三种花式打印的示例详解
Mar 19 #Python
You might like
来自PHP.NET的入门教程
2006/10/09 PHP
php 设计模式之 单例模式
2008/12/19 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
js 事件小结 表格区别
2007/08/13 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python中input与raw_input 之间的比较
2017/08/20 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
详解python中sort排序使用
2019/03/23 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
数据库方面面试题
2012/04/22 面试题
幼儿园中班下学期评语
2014/04/18 职场文书
单位未婚证明范本
2014/11/25 职场文书
2015年幼师工作总结
2015/04/28 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
Nginx快速入门教程
2021/03/31 Servers
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
如何Tomcat中使用ipv6地址
2022/05/06 Servers
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers