首页
读书
网课
《python》目录


正文

Tkinter 事件和绑定

  • 鼠标和键盘事件

代码说明
<Button-1>或<ButtonPress-1>或<1>鼠标左键按下。2 是鼠标中键,3是鼠标右键
<ButtonRelease-1>鼠标左键释放
<B1-Motion>按住鼠标左键移动
<Double-Button-1>双击左键
<Enter>鼠标指针进入某一组件区域
<Leave>鼠标指针离开某一组件区域
<MouseWheel>滚动滚轮
<KeyPress-a>按下a键,a可用其他键替代
<KeyRelease-a>释放a键
<KeyPress-A>按下A键(大写的A键)
<Alt-KeyPress-a>同时按下Alt和a键,Alt可以替换成Ctrl和Shift
<Double-KeyPress-a>快速按两下a
<Control-V>Control和V同时被按下,V可以换成其他按键

键盘事件绑定窗口(一般为root=tk.Tk()

  • event 对象常用属性

名称说明
char按键字符,仅对键盘事件有效
keycode按键编码,仅对键盘事件有效
keysym按键名称,仅对键盘事件有效
比如按下空格键:
键的char,键的keycode:32,键的keysym:space
比如按下a键:
键的char:a,键的keycode:65,键的keysym:a
num鼠标按键,仅对鼠标事件有效
type所触发的事件类型
widget引起事件的组件
width, height组件改变后的大小,仅Configure有效
x,y鼠标当前位置,相对于父容器
x_root,y_root鼠标当前位置,相对于整个屏幕
  • lambda表达式

lambda格式说明
lambda x, y:x*y函数输入是x和y,输出是积x*y
lambda:None函数没有输入参数,输出是None
lambda:aaa(3, 4)函数没有输入参数,输出是aaa(3, 4)的结果
lambda *args:sum(args)输入是任意个数的参数,输出是它们的和
lambda **kwargs:1输入是任意键值对参数,输出是1
  • 多种事件绑定方式汇总

  • 组件对象的绑定

  • 组件对象的绑定(适合简单,且不需要获取event对象)

Button(root, text="login",command=login)
  1. 通过bind()方法绑定(适合需要获取event对象)

c1 = Canvas(); c1.bind("<Button-1>", drawLine)
  • 组件类的绑定

  • 调用对象的bind_class函数,将该组件类所有的组件绑定事件

python w.bind_class("Widget", "event", eventhandler)

文件对话框

函数名说明
askopenfilename(**options)返回打开的文件名
askopenfilenames(**options)返回打开的多个文件名列表
askopenfile(**options)返回打在文件对象
askopenfiles(**options)返回打开的文件对象的列表
askdirectory(**options)返回目录名
asksaveasfile(**options)返回保存的文件对象
asksaveasfilename(**options)返回保存的文件名

命名参数options的常见值如下:

参数名说明
defaultextension默认后缀:.xxx
用户没有输入则自动添加
filetypes = [(label1, pattern1), (label2,pattern2)]文件显示过滤器
initaldir初始目录
initialfile初始文件
parent父窗口,默认根窗口
title窗口标题



上一篇: 没有了
下一篇: 没有了
圣贤书院