Python tkinter之Bind(绑定事件)的使用示例


Posted in Python onFebruary 05, 2021

1、绑定鼠标事件并获取事件属性

# -*- encoding=utf-8 -*-

import tkinter
from tkinter import *


def left_mouse_down(event):
  print('鼠标左键按下')

  # 事件的属性
  widget = event.widget
  print('触发事件的组件:{}'.format(widget))
  print('组件颜色:{}'.format(widget.cget('bg')))
  widget_x = event.x # 相对于组件的横坐标x
  print('相对于组件的横坐标:{}'.format(widget_x))
  widget_y = event.y # 相对于组件的纵坐标y
  print('相对于组件的纵坐标:{}'.format(widget_y))
  x_root = event.x_root # 相对于屏幕的左上角的横坐标
  print('相对于屏幕的左上角的横坐标:{}'.format(x_root))
  y_root = event.y_root # 相对于屏幕的左上角的纵坐标
  print('相对于屏幕的左上角的纵坐标:{}'.format(y_root))


def left_mouse_up(event):
  print('鼠标左键释放')
def moving_mouse(event):
  print('鼠标左键按下并移动')
def moving_into(event):
  print('鼠标进入')
def moving_out(event):
  print('鼠标移出')
def right_mouse_down(event):
  print('鼠标右键按下')
def right_mouse_up(event):
  print('鼠标右键释放')
def pulley_up(event):
  print('滑轮向上滚动')
def focus(event):
  print('聚焦事件')
def unfocus(event):
  print('失焦事件')


if __name__ == '__main__':
  win = tkinter.Tk() # 窗口
  win.title('南风丶轻语') # 标题
  screenwidth = win.winfo_screenwidth() # 屏幕宽度
  screenheight = win.winfo_screenheight() # 屏幕高度
  width = 500
  height = 300
  x = int((screenwidth - width) / 2)
  y = int((screenheight - height) / 2)
  win.geometry('{}x{}+{}+{}'.format(width, height, x, y)) # 大小以及位置

  label = Label(text='标签', relief='g', font=('黑体', 20))
  label.pack(pady=10)

  label.bind('<Button-1>', left_mouse_down) # 鼠标左键按下
  label.bind('<ButtonRelease-1>', left_mouse_up) # 鼠标左键释放
  label.bind('<Button-3>', right_mouse_down) # 鼠标右键按下
  label.bind('<ButtonRelease-3>', right_mouse_up) # 鼠标右键释放
  label.bind('<B1-Motion>', moving_mouse) # 鼠标左键按下并移动
  label.bind('<Enter>', moving_into) # 鼠标移入事件
  label.bind('<Leave>', moving_out) # 鼠标移出事件
  label.bind('<FocusIn>', focus) # 聚焦事件
  label.bind('<FocusOut>', unfocus) # 失焦事件
  label.focus_set() # 直接聚焦
  Entry().pack()

  win.mainloop()

Python tkinter之Bind(绑定事件)的使用示例

2、绑定键盘事件并获取事件属性

# -*- encoding=utf-8 -*-
import tkinter
from tkinter import *


def keyboard_event(event):
  char = event.char
  print('回车 char:{}'.format(char))
  key_code = event.keycode
  print('回车 key code:{}'.format(key_code))


def entry_enter(event):
  print('输入的内容为:' + entry.get())


def shift_f(event):
  print('SHIFT + F')
  print(event.char)
  print(event.keycode)


def num_lock(event):
  print('num_lock')
  print(event.char)
  print(event.keycode)


if __name__ == '__main__':
  win = tkinter.Tk() # 窗口
  win.title('南风丶轻语') # 标题
  screenwidth = win.winfo_screenwidth() # 屏幕宽度
  screenheight = win.winfo_screenheight() # 屏幕高度
  width = 500
  height = 300
  x = int((screenwidth - width) / 2)
  y = int((screenheight - height) / 2)
  win.geometry('{}x{}+{}+{}'.format(width, height, x, y)) # 大小以及位置

  label = Label(text='标签', relief='g', font=('黑体', 20))
  label.pack(pady=10)
  label.focus_set()
  label.bind('<Return>', keyboard_event) # 按下回车
  label.bind('<Shift F>', shift_f)
  label.bind('<Num_Lock>', num_lock)

  entry = Entry()
  entry.pack()
  entry.bind('<Return>', entry_enter) # 按下回车

  win.mainloop()

Python tkinter之Bind(绑定事件)的使用示例

以上就是Python tkinter之Bind(绑定事件)的使用示例的详细内容,更多关于python tkinter Bind(绑定事件)的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python字典键值对的添加和遍历方法
Sep 11 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
python抓取京东小米8手机配置信息
Nov 13 Python
python基于SMTP协议发送邮件
May 31 Python
python 中如何获取列表的索引
Jul 02 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
Python任务自动化工具tox使用教程
Mar 17 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 #Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 #Python
python实现录制全屏和选择区域录屏功能
Feb 05 #Python
pycharm 使用anaconda为默认环境的操作
Feb 05 #Python
通用的Django注册功能模块实现方法
Feb 05 #Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 #Python
ASP.NET Core中的配置详解
Feb 05 #Python
You might like
php项目打包方法
2008/02/18 PHP
php中的观察者模式
2010/03/24 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
初步认识Python中的列表与位运算符
2015/10/12 Python
python getopt模块使用实例解析
2019/12/18 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python 调整图片亮度的示例
2020/12/03 Python
罗技美国官网:Logitech美国
2020/01/22 全球购物
开办饭店创业计划书
2013/12/28 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
大学生自荐信范文
2015/03/05 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers