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 条评论
登录 后参与评论

相关文章

来自专栏做全栈攻城狮

.Net程序员快速学习安卓开发-布局和点击事件的写法

我们新建一个layout布局文件时,默认就是相对布局。相对布局是相对于非相对布局来说的。顾名思义,相对布局就是 相对于某些控件位置的布局。所有的控件都是相对位置...

14240
来自专栏.Net移动开发

VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——ImageTabBar控件的使用方式

获得和设置标签栏单元集合,打开集合编辑器,并点击“添加”,分别填写ImageResourceID(菜单项图片名称),SelectImageResourceID(...

7230
来自专栏Google Dart

AngularDart Material Design 弹出框 顶

(adsbygoogle = window.adsbygoogle || []).push({}); fun...

7020
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第二天 HTML表单&amp;CSS【悟空教程】

所有的html标签中,表单标签是最重要的。在实际开发中,最经典的实例就是用户注册,覆盖了表单标签的所有的元素。效果图如下:

46140
来自专栏别先生

HTML入门的简单学习

1:HTML简介     1.1:HTML(Haper Text Markup language):超文本标记语言     超文本就是指页面内可以包含图片,链接...

538100
来自专栏十月梦想

表单

1.表单控件     1.input标记         1.input标记             提供文本输入框,密码输入框,按钮,单选按钮,多选按钮,...

8430
来自专栏张俊红

网页是怎么构成的?

总第60篇 所谓的网络爬虫就是从网页中指定位置找到对应的数据并下载,要想知道数据在什么位置,我们需要首先知道网页中的数据是如何显示与储存的,这篇主要是分享一下最...

46980
来自专栏快乐八哥

DIV元素水平和垂直居中

在前端开发过程中,经常要对元素进行居中设置。一般有水平居中,和垂直居中。一般设置水平居中简单。基本是margin:0 auto,就可以了。但是垂直居中,我们有时...

46880
来自专栏码农阿宇

HTML基础加强

1. 什么是浏览器:解释和执行HTML源码的工具。 2. 什么是静态页面,什么样的页面是动态页面? 静态页面:htm,html(直接读取) 动态网页:asp...

362100
来自专栏ytkah

如何用<dl>标签做表格而不用table标签

  我们都知道很多的内容编辑器(TinyMCE编辑器、fck)都有插入表格功能,快速方便,但是这些表格用到的<table>标签,可以查看html源代码就能发现,...

33660

扫码关注云+社区

领取腾讯云代金券