专栏首页python3tkinter -- Event(1)

tkinter -- Event(1)

事件的使用方法

测试鼠标点击(Click)事件

代码:

import tkinter as tk
root = tk.Tk()

# 测试鼠标点击事件
def printcoords(event):
    print(event.x, event.y)

# 创建第一个 Button,并将它与左键事件绑定
bt1 = tk.Button(root, text='leftmost button')
bt1.bind('<Button-1>', printcoords)

# 创建二个 Button,并将它与中键事件绑定
bt2 = tk.Button(root, text='middle button')
bt2.bind('<Button-2>', printcoords)

# 创建第三个 Button,并将它与右击事件绑定
bt3 = tk.Button(root, text='rightmost button')
bt3.bind('<Button-3>', printcoords)

# 创建第四个 Button,并将它与双击事件绑定
bt4 = tk.Button(root, text='double click')
bt4.bind('<Double-Button-1>', printcoords)

# 创建第五个 Button,并将它与三击事件绑定
bt5 = tk.Button(root, text='triple click')
bt5.bind('<Triple-Button-1>', printcoords)

bt1.grid()
bt2.grid()
bt3.grid()
bt4.grid()
bt5.grid()
root.mainloop()

结果:

分别测试鼠标的事件,回调函数的参数 event 中(x,y)表示当前点击的坐标值

测试鼠标的移动(Motion)事件

测试鼠标移动事件

代码:

import tkinter as tk
root = tk.Tk()

# 测试鼠标点击事件
def printcoords(event):
    print(event.x, event.y)

# 创建第一个 Button,并将它与右击移动事件绑定
bt1 = tk.Button(root, text='leftmost button')
bt1.bind('<B1-Motion>', printcoords)

# 创建第二个 Button,并将它与右击移动事件绑定
bt2 = tk.Button(root, text='middle button')
bt2.bind('<B2-Motion>', printcoords)

# 创建第三个 Button,并将它与右击移动事件绑定
bt3 = tk.Button(root, text='rightmost button')
bt3.bind('<B3-Motion>', printcoords)


bt1.grid()
bt2.grid()
bt3.grid()
root.mainloop()

结果:

分别测试鼠标的移动事件,只有当鼠标被按下后移动才回产生事件

测试鼠标的释放(Relase)事件

代码:

import tkinter as tk
root = tk.Tk()

# 测试鼠标释放事件
def printcoords(event):
    print(event.x, event.y)

# 创建第一个 Button,并将它与左键释放事件绑定
bt1 = tk.Button(root, text='leftmost button')
bt1.bind('<ButtonRelease-1>', printcoords)

# 创建第二个 Button,并将它与左键释放事件绑定
bt2 = tk.Button(root, text='middle button')
bt2.bind('<ButtonRelease-2>', printcoords)

# 创建第三个 Button,并将它与左键释放事件绑定
bt3 = tk.Button(root, text='rightmost button')
bt3.bind('<ButtonRelease-3>', printcoords)


bt1.grid()
bt2.grid()
bt3.grid()
root.mainloop()

结果:

分别测试鼠标的 Relase 事件,只有当鼠标被 Relase 后移动才回产生 Relase 事件

进入(Enter)事件

测试鼠标释放事件

代码:

import tkinter as tk
root = tk.Tk()
def printcoords(event):
    print(event.x, event.y)

# 创建第一个 Button,并将它与 Enter 事件绑定
bt1 = tk.Button(root, text='leftmost button')
bt1.bind('<Enter>', printcoords)

bt1.grid()
root.mainloop()

结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • tkinter -- Text(1)

    root 中含有一 Text 控件,可以在这个控件内输入文本,可以使用 Ctrl+C/V 向 Text 内添加剪切板上的内容(文本),不接受 Ctrl+Z 执行...

    py3study
  • H3C ISIS

    假设一台路由器使用接口LoopBack0的IP地址168.10.1.1作为Router_ID,则它在IS-IS使用的System ID可通过如下方法转换得到:

    py3study
  • tkinter -- Pack

    pack_salves 打印当前组件包拥有的子组件,通过这个函数可以查看各个组件是否有包含关系

    py3study
  • Tomcat服务器配置详解

    Tomcat服务器是一个免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是很多的场合中被普遍使用,是开发和测试JSP程序的首选。一般来...

    小手冰凉
  • 高翔Slambook第七讲代码解读(3d-2d位姿估计)

    上回咱们读完了pose_estimation_2d2d.cpp这个文件,基本上明白了通过对极几何计算相机位姿变换的过程,简单地说就是:你给我两帧图像,我给你算个...

    小白学视觉
  • 安卓签名证书(keystore)生成并用HBuild打包发行

    Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。

    lollipop72
  • html5标签基础

    1.声明:<!DOCTYPE> HTML有多个不同的版本,只有完全明白页面中使用的确切HTML版本,浏览器才能完全正确的显示出HTML页面,这就是<!DOC...

    xiangzhihong
  • 单例模式三种模式,饿汉(饥汉)、饱汉(懒汉)、双重锁模式

    今天看某培训机构提供面试题中设计模式部分,对饱汉和饿汉比较感兴趣,就搜了一下,然后误人子弟,然后就觉得有必要记录一下

    瑾诺学长
  • leetcode 4

    风骨散人Chiam
  • Python数据类型详解-列表#学习猿地

    + 在定义列表中的元素时,需要在每个元素之间使用逗号,进行分隔。[1,2,3,4]

    学习猿地

扫码关注云+社区

领取腾讯云代金券