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 21 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
详解python中sort排序使用
Mar 23 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
如何基于Python批量下载音乐
Nov 11 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
pytorch 修改预训练model实例
Jan 18 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
python 爬取吉首大学网站成绩单
Jun 02 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
一些花式咖啡的配方
2021/03/03 冲泡冲煮
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
初识Node.js
2015/03/20 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
JavaScript 绘制饼图的示例
2021/02/19 Javascript
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python3.7调试的实例方法
2020/07/21 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
软件测试题目
2013/02/27 面试题
我们的节日端午节活动总结
2015/02/11 职场文书
个人自荐书怎么写
2015/03/26 职场文书
通知函的格式
2015/04/27 职场文书
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers