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实现的文件夹清理程序分享
Nov 22 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
浅谈Python的垃圾回收机制
Dec 17 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
python操作gitlab API过程解析
Dec 27 Python
Python实现ATM系统
Feb 17 Python
Python实现爬取并分析电商评论
Jun 19 Python
python绘制箱型图
Apr 27 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
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
调试php程序的简单步骤
2019/10/04 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
JavaScript this 深入理解
2009/07/30 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
Python实现全角半角字符互转的方法
2016/11/28 Python
简单了解Django模板的使用
2017/12/20 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
房屋出租协议书范本(标准版)
2014/09/24 职场文书
实习单位推荐信
2015/03/27 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
教师反邪教心得体会
2016/01/15 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python