目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务11.7 鼠标键盘事件

(一)鼠标键盘事件

在Pyton中,tkinter模块的事件event都用字符串描述,格式为:

            组件对象.bind(event, handler)

其中,event为事件,handler为处理事件的函数。

鼠标按钮的点击事件的一般格式为:

             <ButtonPress-n> 

其中,n为鼠标按钮,n为1代表左键,2代表中键,3代表右键。

例如,<ButtonPress-1>, 表示按下鼠标的左键。



可以通过鼠标事件event来获得鼠标位置。坐标点(event.x,event.y)为发生事件时,鼠标所在的位置。

【例15】编写捕获鼠标点击事件的程序。当鼠标在窗体容器中点击时,记录下其坐标位置。

from tkinter import *

def callback(event):

        print( "clicked at:", event.x, event.y)

        s = (event.x, event.y)

        txt.set(s)

win = Tk()

win.geometry('200x120')

win.title('鼠标事件')

frame = Frame(win, width=200, height=100, bg = 'cyan')

frame.bind("<Button-1>", callback)

frame.pack()

txt =  StringVar()

L = Label(win, width=20, textvariable = txt)


(二)键盘事件

在捕获键盘事件时,先要用focus_set()方法把键盘的焦点设置到一个组件上,这样才能捕获到键盘事件。


【例16】通过捕获键盘事件,在窗体中显示按下的键。



例  编写一个小程序,在顶层窗口里安放一个标签和两个按钮。初始时,标签内显示文字“请加载图片!”。单击“换图片”按钮,就往标签里加载图片。连续单击6次,标签里出现6张不同的图片,第7次单击时,又为第1张图片,周而复始;单击“退出”按钮,整个程序停止运行。


import tkinter as tk

top=tk.Tk()

top.title('python GUI')

top.geometry('200x200+10+10')

tup1=tk.PhotoImage(file = "E:\python图片夹\A.png")

tup2=tk.PhotoImage(file = "E:\python图片夹\B.png")

tup3=tk.PhotoImage(file = "E:\python图片夹\C.png")

tup4=tk.PhotoImage(file = "E:\python图片夹\D.png")

tup5=tk.PhotoImage(file = "E:\python图片夹\E.png")

tup6=tk.PhotoImage(file = "E:\python图片夹\F.png")

lab1=tk.Label(top,text='请加载图片!',font=('Verdana',16,'italic', 'bold'),fg='red',relief='ridge')

lab1.pack(pady=15)

i=1 #定义全局变量

def change():

  global i

lab1.config(image=tup1

if  i==1:

i+=1

lab1.config(image=tup2)

 elif i==2:

i+=1

lab1.config(image=tup3)

elif i==3:

i+=1

lab1.config(image=tup4)

elif i==4:

i+=1

lab1.config(image=tup5)

elif i==5:

i+=1

lab1.config(image=tup6)

else:

i=1

button1=tk.Button(top,text='换图片',font=('楷体',13,'bold'),fg='red', command=change)

button1.pack(side='left',padx=20)

button2=tk.Button(top, text='退出',font=('楷体',13,'bold'),fg='red', command=quit)

button2.pack(side='left',padx=5)

top.mainloop()