1. 鼠标点击事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event): # 事件属性
  12. print(event.x,event.y) # 小控件局域x轴和y轴的举例
  13.  
  14. # 绑定事件:
  15. # bind:参数1绑定事件,参数2绑定这个事件的函数
  16. # 事件内容:
  17. # <Button-> -鼠标左键 -鼠标滚轮 -鼠标右键
  18. # <Double-Button-> -鼠标左键双击 -鼠标滚轮双击 -鼠标右键双击
  19. # <Triple-Button-> 同上:变为三击
  20. button1 = tkinter.Button(win,text="leftmouse button")
  21. button1.bind("<Button-1>",func) #更换事件
  22. button1.pack()
  23.  
  24. # 保持循环不让窗口关闭__编程尾部
  25. win.mainloop()

2. 鼠标移动事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event): # 事件属性
  12. print(event.x,event.y) # 小控件局域x轴和y轴的举例
  13.  
  14. # 绑定事件:
  15. # bind:参数1绑定事件,参数2绑定这个事件的函数
  16. # <B1-Motion> -表示鼠标左键移动 -表示鼠标中键移动 -表示鼠标右键移动
  17. # 按住事件内容拖动就会出现。
  18.  
  19. # 事件内容:
  20. label1 = tkinter.Label(win,text="Thomas is a good man")
  21. label1.pack()
  22. #
  23. label1.bind("<B1-Motion>",func)
  24.  
  25. # 保持循环不让窗口关闭__编程尾部
  26. win.mainloop()

3. 鼠标释放事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event): # 事件属性
  12. print(event.x,event.y) # 小控件局域x轴和y轴的举例
  13.  
  14. # 绑定事件:
  15. # bind:参数1绑定事件,参数2绑定这个事件的函数
  16. # <ButtonRelease-> -表示释放鼠标左键 -表示释放鼠标中键 -表示释放鼠标右键
  17. #
  18. # 事件内容:
  19. label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  20. label1.pack()
  21. #
  22. label1.bind("<ButtonRelease-1>",func)
  23.  
  24. # 保持循环不让窗口关闭__编程尾部
  25. win.mainloop()

4. 进入与离开事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event): # 事件属性
  12. print(event.x,event.y) # 小控件局域x轴和y轴的举例
  13.  
  14. # 绑定事件:
  15. # bind:参数1绑定事件,参数2绑定这个事件的函数
  16. # <Enter>:鼠标光标进入控件时触发
  17. # <Leave>:鼠标光标离开控件时触发
  18. # 事件内容:
  19. label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  20. label1.pack()
  21. #
  22. label1.bind("<Enter>",func)
  23.  
  24. # 保持循环不让窗口关闭__编程尾部
  25. win.mainloop()

5. 响应所有按键的事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. # def func(event):
  12. # print("event.chr=",event.char)
  13. # print("event.keycode=", event.keycode)
  14.  
  15. # # 响应所有按键的事件1
  16. # # <Key>:响应所有按键的事件,从键盘输入任何键
  17. # label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  18. # label1.focus_set() # 设置焦点
  19. # label1.pack()
  20. # #
  21. # label1.bind("<Key>",func)
  22.  
  23. # 响应所有按键的事件2,直接给窗体设置响应,不用再设置焦点了。
  24. def func(event):
  25. print("event.chr=",event.char)
  26. print("event.keycode=", event.keycode)
  27. win.bind("<Key>",func)
  28.  
  29. # 保持循环不让窗口关闭__编程尾部
  30. win.mainloop()

6. 响应特殊按键事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event):
  12. print("event.chr=",event.char)
  13. print("event.keycode=", event.keycode)
  14.  
  15. # 响应特殊按键的事件
  16. # <Shift_L>:L-响应的是左侧的Shift,R-响应的是右侧的Shift
  17. # <F5>:
  18. # <Return>:当单击回车键的时候
  19. # <BackSpace>:退格键
  20. label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  21. label1.focus_set() # 设置焦点
  22. label1.pack()
  23. #
  24. label1.bind("<Shift_L>",func)
  25.  
  26. # 保持循环不让窗口关闭__编程尾部
  27. win.mainloop()

7. 指定按键事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event):
  12. print("event.chr=",event.char)
  13. print("event.keycode=", event.keycode)
  14.  
  15. # 指定按键事件:
  16. # a:指定键盘的a,响应事件,直接写按键的名
  17. label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  18. label1.focus_set() # 设置焦点
  19. label1.pack()
  20. #
  21. label1.bind("a",func)
  22.  
  23. # 保持循环不让窗口关闭__编程尾部
  24. win.mainloop()

8. 组合按键事件

  图示:

  实例:

  1. import tkinter
  2. from tkinter import ttk
  3.  
  4. # 创建主窗口__编程头部
  5. win = tkinter.Tk()
  6. # 设置标题
  7. win.title("Thomas的窗口")
  8. # 设置大小和位置
  9. win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
  10.  
  11. def func(event):
  12. print("event.chr=",event.char)
  13. print("event.keycode=", event.keycode)
  14.  
  15. # 组合按键事件:
  16. # <Control-Alt-b>:同时按下这三个键响应事件
  17. # <Shift-Up>:
  18. label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
  19. label1.focus_set() # 设置焦点
  20. label1.pack()
  21. #
  22. label1.bind("<Control-Alt-b>",func)
  23.  
  24. # 保持循环不让窗口关闭__编程尾部
  25. win.mainloop()

Python笔记_第四篇_高阶编程_GUI编程之Tkinter_5.鼠标事件的更多相关文章

  1. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述

    1. GUI概述: GUI全称为Graphical User Interface,叫做图形用户界面,也是一种交互方式(Interaction).早期计算机使用的命令行界面(command-line i ...

  2. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_3.数据显示

    1. 表格数据显示: 图示: 实例: import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 wi ...

  3. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_2.控件类

    1. Label控件: 说明:标签控件,可显示文本 图示1: 实例1: import tkinter # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title ...

  4. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_6.附录

    1. 事件附录: 2. 事件属性附录:

  5. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_4.布局

    1. 绝对布局: 图示: 实例: import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win. ...

  6. Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速

    Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...

  7. Python开发【第十三篇】高阶函数、递归函数、闭包

    函数式编程是指用一系列函数解决问题 好处:用每个函数完成每个细小的功能,一系列函数任意组合能够解决大问题 函数仅仅接收输入并产生输出,不包含任何能影响输出的内部状态 函数之间的可重入性 当一个函数的输 ...

  8. python学习三十四天函数高阶函数定义及用法

    python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def tes ...

  9. Python笔记_第四篇_高阶编程_实例化方法、静态方法、类方法和属性方法概念的解析。

    1.先叙述静态方法: 我们知道Python调用类的方法的时候都要进行一个实例化的处理.在面向对象中,一把存在静态类,静态方法,动态类.动态方法等乱七八糟的这么一些叫法.其实这些东西看起来抽象,但是很好 ...

随机推荐

  1. Inheritance and the prototype chain 继承和 原型 链

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain Inherita ...

  2. windows driver 获取文件属性

    OBJECT_ATTRIBUTES oa; FILE_NETWORK_OPEN_INFORMATION fnoi; UNICODE_STRING strPath = RTL_CONSTANT_STRI ...

  3. mybatis配置约束config,mapper

    MyBatis 主配置文件 config.xml(这里可以自己起,不过后面带上Config.xml) <?xml version="1.0" encoding="U ...

  4. ASP.NET Identity实现分布式Session,Docker+Nginx+Redis+ASP.NET CORE Identity

    零.背景介绍 在学习ASP.NET CORE开发的过程中,身份认证是必须考虑的一项必要的组件.ASP.NET CORE Identity是由微软官方开发的一整套身份认证组件,兼具完整性和自由度.Doc ...

  5. MyBatis整体架构

    Mybatis整体架构 基础支持层 反射模块 Java中的反射很强大,但是还是需要封装的.MyBatis专门提供了反射模块,对元素的反射进行了封装,提供了简洁的API,对反射进行了优化,例如缓存了类的 ...

  6. Day 9:双列集合Map及实现该接口的类的常用方法

    为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...

  7. NtQueryObject 获得内核对象使用计数

    一个内核对象有两个计数器:一个是句柄计数,句柄是给用户态用的:另一个是指针计数,也叫引用计数,因为核心态也常常用到内核对象,为了方便,在核心态的代码用指针直接访问对象,所以Object   Manag ...

  8. 转载电子发烧友网---STM32的IO口灌入电流和输出驱动电流

    刚开始学习一款单片机的时候一般都是从操作IO口开始的,所以我也一样,先是弄个流水灯. 刚开始我对STM32的认识不够,以为是跟51单片机类似,可以直接操作端口,可是LED灯却没反应,于是乎,仔细查看资 ...

  9. dbcp连接池的一些方法

    创建连接 // 简写版: Connection conn =null; Statement st =null; conn = DBCP.getConnection(); st=conn.createS ...

  10. 最短路问题--P4779 单源最短路(标准版)Dijkstra堆优化

    题目背景 2018 年7月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 最终,他因此没能与理想的大学达成契约. 小 F 衷心祝愿大家不再重 ...