1. 鼠标点击事件

  图示:

  实例:

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

2. 鼠标移动事件

  图示:

  实例:

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

3. 鼠标释放事件

  图示:

  实例:

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

4. 进入与离开事件

  图示:

  实例:

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

5. 响应所有按键的事件

  图示:

  实例:

import tkinter
from tkinter import ttk # 创建主窗口__编程头部
win = tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 # def func(event):
# print("event.chr=",event.char)
# print("event.keycode=", event.keycode) # # 响应所有按键的事件1
# # <Key>:响应所有按键的事件,从键盘输入任何键
# label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
# label1.focus_set() # 设置焦点
# label1.pack()
# #
# label1.bind("<Key>",func) # 响应所有按键的事件2,直接给窗体设置响应,不用再设置焦点了。
def func(event):
print("event.chr=",event.char)
print("event.keycode=", event.keycode)
win.bind("<Key>",func) # 保持循环不让窗口关闭__编程尾部
win.mainloop()

6. 响应特殊按键事件

  图示:

  实例:

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

7. 指定按键事件

  图示:

  实例:

import tkinter
from tkinter import ttk # 创建主窗口__编程头部
win = tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event):
print("event.chr=",event.char)
print("event.keycode=", event.keycode) # 指定按键事件:
# a:指定键盘的a,响应事件,直接写按键的名
label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
label1.focus_set() # 设置焦点
label1.pack()
#
label1.bind("a",func) # 保持循环不让窗口关闭__编程尾部
win.mainloop()

8. 组合按键事件

  图示:

  实例:

import tkinter
from tkinter import ttk # 创建主窗口__编程头部
win = tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event):
print("event.chr=",event.char)
print("event.keycode=", event.keycode) # 组合按键事件:
# <Control-Alt-b>:同时按下这三个键响应事件
# <Shift-Up>:
label1 = tkinter.Label(win,text="Thomas is a good man",bg="red")
label1.focus_set() # 设置焦点
label1.pack()
#
label1.bind("<Control-Alt-b>",func) # 保持循环不让窗口关闭__编程尾部
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. 第二周的java

  2. HDU - 5591 ZYB's Game(博弈)

    题意:A和B两人在1~N中选数字.已知1<=X<=N,谁先选中X谁就输.每当一个人选出一个不是X的数,裁判都会说明这个数比X大还是小,与此同时,可选范围随之缩小.已知A先选,求满足能让B赢 ...

  3. cf 730J. Bottles

    搞一个背包,233 要求用的瓶数最少,那么就业瓶数为第一关键,当瓶数相当后再以a[i] #include<bits/stdc++.h> #define N 100005 #define L ...

  4. 在开发过程中遇到的Oracle的坑及开发技巧

    本人与2018年毕业,工作一年多,仍是菜鸟,自毕业以来一直从事java软件开发工作,工作中大部分数据库都是使用的Oracle,碰到的问题总结一下(随时更新). 1.sql中使用group by 分组时 ...

  5. 常用模块-正则re

    常用模块之正则模块 """ 正则表达式与re模块的关系 1.正则表达式是一门独立的技术,任何语言均可使用 2.python中要想使用正则表达式需要通过re模块 " ...

  6. python脚本下载 Google Driver 文件

    使用python脚本下载 Google Driver 文件 import yaml import sys import requests import os import re import tarf ...

  7. CentOS 7 连接不到网络解决方法

    使用VM12创建虚拟机并安装CentOS 7,但是安装完成后发现连接不到网络. ping jd.com发现不通 因为在创建虚拟机的时候我们选择的是NAT模式 这里给出NAT模式下对应的的解决方法: 一 ...

  8. POJ-1733 Parity game(带权并查集区间合并)

    http://poj.org/problem?id=1733 题目描述 你和你的朋友玩一个游戏.你的朋友写下来一连串的0或者1.你选择一个连续的子序列然后问他,这个子序列包含1的个数是奇数还是偶数.你 ...

  9. SPOJ 423 Assignments 状态DP

    这个题目搁置了这么久,终于搞完了. 给n个人分配n个课程,已经告诉了你n个人对哪几门感兴趣,问最多有多少种分配方式 我刚开始都没找到这怎么还可以状态dp,哪来的状态转移,想用暴力DFS,果断TLE的妥 ...

  10. 计算广告-GD广告

    算法 分配算法主要是解优化问题. 流量预测(traffic forecasting), 流量预估 库存分配, 粗力度的分配. 流量分配, 排单算法 在线分配(Online Allocation) 资料 ...