当前位置:首页 > 编程学习资源 >

python tkinter 实现学生通讯录

大小:14 KB已被20人关注

python tkinter 实现学生通讯录是一个不错的学习资源,大小为14 KB,由陈正浩 提供,python类资源中评分为8.3。

Tags:python tkinter 学生通讯录 

心得笔记

给大家精选了网上关于《python tkinter 实现学生通讯录》的学习笔记心得及相关实例内容,值得大家学习参考。

详解python tkinter教程-事件绑定

一个Tkinter主要跑在mainloop进程里。Events可能来自多个地方,比如按键,鼠标,或是系统事件。

Tkinter提供了丰富的方法来处理这些事件。对于每一个控件Widget,你都可以为其绑定方法function。

widget.bind(event,handler)

如果相应的event发生了,就会调用handler处理事件。举个例子:

捕获鼠标点击事件:

from Tkinter import *

root = Tk()
def callback(event):
  print "clicked at", event.x, event.y
frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", callback)
frame.pack()

root.mainloop()

在这里,我们使用frame的bind方法将一个callback方法绑定到一个事件,也就是点击鼠标左键,每点击一次,控制台打印出当前点击的坐标x,y。

键盘事件被发送到当前拥有焦点的widget,你可以用focus_set方法来设置widget们的焦点:

捕获键盘事件:

from Tkinter import *

root = Tk()

def key(event):
  print "pressed", repr(event.char)

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

frame = Frame(root, width=100, height=100)
frame.bind("<Key>", key)
frame.bind("<Button-1>", callback)
frame.pack()

root.mainloop()

运行这个程序,你会发现,只有在当前窗口获取焦点的情况下,你按键盘键它才会捕获到并打印。

事件

事件用字符串定义,有一个特殊的语法规则:

<modifier-type-detail>

type字段是最重要的,它指出了事件的种类,可以指定为Button,Key或者Enter,Configure等等。modifier和detail字段可以提供一些附加信息,在大多数情况下可以不指定。还有很多方法可以简化事件字符串,比如:为了匹配一个键盘键,你可以省略尖角括号,直接用 键 即可。除非它是空格 , 或本身就是尖括号。

让我们来看看最常用的事件格式:

事件格式:

<Button-1>

一个鼠标点击事件。1代表左键,2代表中键,3代表右键。当你在一个widget上点击鼠标按键,tkinter会自动捕获并触发event,注意,当按键被抬起时才会执行handler。鼠标的位置(相对于widge)x,y会被发往event对象传入handler。你也可以这样:,<1>,它们是等价的。我比较喜欢这种方式。

<B1-Motion>

鼠标拖动事件。1代表按下左键拖动,2代表中键,3代表右键。同样的,鼠标的x,y会以event对象方式被送往handler。

<ButtonRelease-1>

鼠标按下之后释放

<Double-Button-1>

双击鼠标

<Enter>

注意,这里是鼠标指针进入到widget里,并不是代表按下键盘上的Enter键。

<Leave>

和上面的进入对应,鼠标离开widget。

<FocusIn> <FocusOut>

<Return> <Cancel> <BackSpace> <Tab> <Shift_L> <Control_L>
<Alt_L> <Home> <Left> <Up> <Right> <Down> <Delete> <F1> <F2>

这些按键都和键盘上的一一对应。

<Key>

随便一个按键,键值会以char的格式放入event对象。

a b c ... 1 2 ...

对应键盘上的按键

<Configure>

这个关键了,如果widget的大小改变了,或者是位置,新的大小(width和height)会打包到event发往handler。

事件对象

事件对象是独立的python实例,有很多属性。

对象属性:

  1. widget  产生event的实例,不是名字,所有对象拥有
  2. x,y     鼠标位置,单位:像素
  3. x_root,y_root       鼠标相对于屏幕左上角的位置,像素
  4. char        仅键盘事件,string
  5. num     按钮num,仅鼠标事件
  6. width,height        widget新大小
  7. type        事件类型

 实例绑定和类绑定

上面我们用的绑定方法是绑定到一个实例对象上,这就意味着,如果新建一个实例,它是没有绑定事件的。
实际上,tkinter允许你将事件绑定到类上,甚至是绑定到程序本身。你可以创建四个层面的绑定:

  1. 绑定到widget instance 使用bind方法
  2. 绑定到widget的toplevel windows,顶层窗口,也是用bind
  3. 绑定到widget class,使用bind_class

比如,你可以使用bind_all来创建一个F1键的绑定,这样你可以在任何地方打开帮助。

以上所述是小编给大家介绍的python tkinter事件绑定详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

展开 +

收起 -

相关资源

机器人Python极客编程入门与实战
机器人Python极客编程入门与实战 完整目录版 立即下载
Python黑客攻防入门
Python黑客攻防入门 完整超清版

本书讲述了Python黑客攻防的基础知识、各种黑客攻击技术、黑客攻击学习方法,介绍各种黑客攻击技术、计算机基础知识、应用程序黑客攻击、Web黑客攻击、网络黑客攻击等

立即下载
流畅的Python
流畅的Python 高清版

流畅的Python 致力于帮助Python开发人员挖掘这门语言及相关程序库的优质特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道Python风格的代码。流畅的Python 尤其深入探讨了

立即下载
Python入门经典
Python入门经典 高清版 立即下载
Keras快速上手:基于Python的深度学习实战
Keras快速上手:基于Python的深度学习实战 超清扫描版

本书系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详细介绍了从工具准备、数据获取和

立即下载
机器学习:使用OpenCV和Python进行智能图像处理
机器学习:使用OpenCV和Python进行智能图像处理 完整英文版

OpenCV是1个综合性了經典和优秀计算机视觉、机器学习算法的开源系统库。根据与PythonAnaconda版本号融合,我也能够 获得你所必须的全部开源系统测算库。 这书最先详细介绍归类和重归等统计分

立即下载
python数据分析实用命令速查表
python数据分析实用命令速查表 高清版

本文档主要是Python数据分析速查表 一共6张表,包括:Jupyter Notebook、Numpy、Pandas 、Scikit-Learn、Keras、Matplotlib 速查速记,不二之选!

立即下载
下载地址:百度网盘下载
网友留言
61小时16分钟前回答

python之yeild的定义及使用方法

yeild简单来说就是一个生成器,生成器是这样一个函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。 生成器是一个函数 函数所有的参数都会保留 第二次调用此函数时使用的参数是前一次留下的 生成器还“记住”了它数据状态。还记住了它在流控制构造中的位置。 生成器的运行机制 当你让生成器产生一个数时,生成器会执行,直至出现yeild语句,生成器把yeild的参数给你,之后生成器就不会往下运行。当你向它要下一个数时,他会从上次状态开始继续运行,直至出现yeild语句,把参数给你,之后停下,如此……

25小时11分钟前回答

浅谈python编译pyc工程--导包问题解决

利用python 编译工程,生产pyc文件 pyc文件好处:是一种二进制机器码,并且隐藏了源文件代码,但是有和py文件一样的功能(可以理解为效果一样) 所以可以将代码隐藏,便于商业价值,保护代码隐私还能和py文件一样可运行 import compileallcompileall.compile_dir(r'/path') 所以在一些情况下,需将源文件工程批量生成pyc文件来隐藏代码。 上面代码即为 批量生成pyc的脚本更改path路径为根目录即可(根目录为最顶层目录需包括所有用到的文件) 运行完毕 会在不同目录生成__pycache__目录 存放所有当前目录的pyc文件 这并没有结束 运行主函数pyc文件 会发现新错误 ImportError: No module named 'tracker.yolo' 原因是找不到文件tr……

码小辫

师莹莹 提供上传

资源
43
粉丝
42
喜欢
84
评论
11

Copyright 2018-2021 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com