python_tkinter事件类型详情
作者:手可摘星辰。 发布时间:2021-11-29 10:09:30
标签:python,kinte,r事件,类型
1.事件绑定函数
事件绑定函数有三个如下:
组件.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 = '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组件背景颜色都会变红:
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()
来源:https://www.cnblogs.com/wangdianchao/p/11555130.html


猜你喜欢
- 思维导图 点击图片,可查看大图。介绍 情况:如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设计和给予合适的索引,
- Python个人博客程序开发实例框架设计中,我们已经完成了 数据库设计、数据准备、模板架构、表单设计、视图函数设计、电子邮件支持 等总体设计
- 简述队列一直都是工程化开发中经常使用的数据类型,本篇文章主要介绍一下python queue的使用,会边调试代码,边说明方法内容。环境pyt
- 一、sh是什么SH是一个独特的子进程包装器,可将您的系统程序动态映射到Python函数。SH帮助您用Python编写Shell脚本,既能支持
- pandas获取csv指定行,列house_info = pd.read_csv('house_info.csv')1:取行
- 飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累。实现
- 一、概念介绍Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类
- 1.安装pyenv https://github.com/pyenv/pyenv-instal
- 最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读
- Python 中 ‘unicodeescape' codec can't decode bytes in position
- 前言上次做了用于输入样例格式修改,相当于测试用例的过滤器,这次我们使用类似的思路来做一个对于像C++代码中块注释的过滤器。/** * Def
- 一、语法错误异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里二、异常处理while True: t
- 把文件夹dir1中后缀为'.jpg'的文件拷贝到文件夹dir2中:import globimport shutilimpor
- 如下所示:import numpy as npfrom torchvision.transforms import Compose, ToT
- 本文实例讲述了PHP实现执行外部程序的方法。分享给大家供大家参考,具体如下:在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用she
- python版本:3.5.4系统:win10 x64通过网页下载视频方法一:使用urllib.retrieve函数放函数只需要两个参数即可下
- python opencv实现目标跟踪python-opencv3.0新增了一些比较有用的 * 算法这里根据官网示例写了一个 * 类程序只能
- 邮箱地址验证有很多方法。在浏览器端,js邮箱验证可以通过正则表达式检测。比如:function isEmail(email) {
- 前言本文主要给大家介绍了关于Python中序列的修改、散列与切片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
- ASP实现防止网站被采集代码如下:<% Dim AppealNum,AppealCount Appeal