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 Django连接MySQL数据库做增删改查
Nov 07 Python
python爬取m3u8连接的视频
Feb 28 Python
使用Flask集成bootstrap的方法
Jul 24 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Pandas分组与排序的实现
Jul 23 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
Python Pandas常用函数方法总结
Jun 15 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
WHOIS类的修改版
2006/10/09 PHP
php学习 函数 课件
2008/06/15 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
django创建css文件夹的具体方法
2020/07/31 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
小学优秀班主任事迹材料
2014/05/17 职场文书
2014年团支部工作总结
2014/11/17 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android