python tkinter 全部组件(widget)及事件类型(event)一览

对于一个简单的GUI程序设计来说,我觉得无非就是三个要素,widget(部件),layout(布局),event(事件的响应)

个人感觉,GUI就和搭积木差不多,widget就好比是各种形状的积木,比如长方形,正方形,三角形等等。layout就 是如何将这些积木搭建成为一个小房子,小木屋。

之前接触过一点 java 的图形界面设计,但是基本都忘记了,到了python决定写一点笔记,因为找教程是一件很麻烦的事情。

这篇文章就当做汇总列表,之后会一直更新列表的内容

widget(部件)+event(事件的响应)

tkinter中的widget主要有Button(按钮), Checkbutton(复选按钮),Canvas(画布),Entry(条目), Frame(框架), Label(标签), LabelFrame(标签框架), Listbox(列表框),menu(菜单),Menubutton(菜单按钮),Message (消息),OptionMenu(选项菜单), PanedWindow(中分栏窗口), Radiobutton(单选按钮), Scale(刻度条), Scrollbar(滚动条),Spinbox(整数调节框),Text(文本框), Combobox(下拉列表框), Notebook(笔记本), Progressbar(进度条), Separator(分离器), Sizegrip(尺寸调节器), Treeview(树视图)

整体框架 python tkinter 全部组件(widget)及事件类型(event)一览_第1张图片 Message:消息控件;用来显示多行文本,与label比较类似 python tkinter 全部组件(widget)及事件类型(event)一览_第2张图片
Button:按钮控件;在程序中显示按钮。 python tkinter 全部组件(widget)及事件类型(event)一览_第3张图片 PanedWindow:窗口布局管理的插件,可以包含一个或者多个子控件 python tkinter 全部组件(widget)及事件类型(event)一览_第4张图片python tkinter 全部组件(widget)及事件类型(event)一览_第5张图片
Checkbutton:多选框控件;用于在程序中提供多项选择框 python tkinter 全部组件(widget)及事件类型(event)一览_第6张图片 Radiobutton:单选按钮控件;显示一个单选的按钮状态 python tkinter 全部组件(widget)及事件类型(event)一览_第7张图片
Canvas:画布控件;显示图形元素如线条或文本 python tkinter 全部组件(widget)及事件类型(event)一览_第8张图片 Scale:范围控件;显示一个数值刻度,为输出限定范围的数字区间 python tkinter 全部组件(widget)及事件类型(event)一览_第9张图片

Label:标签控件;可以显示文本和位图

Entry:输入控件;用于显示简单的文本内容

Scrollbar:滚动条控件,当内容超过可视化区域时使用,如列表框。 python tkinter 全部组件(widget)及事件类型(event)一览_第10张图片
Listbox:列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 python tkinter 全部组件(widget)及事件类型(event)一览_第11张图片 Text:文本控件;用于显示多行文本
menu:菜单控件;显示菜单栏,下拉菜单和弹出菜单 python tkinter 全部组件(widget)及事件类型(event)一览_第12张图片 Combobox:下拉列表 python tkinter 全部组件(widget)及事件类型(event)一览_第13张图片
Menubutton:菜单按钮控件,由于显示菜单项。 python tkinter 全部组件(widget)及事件类型(event)一览_第14张图片 Notebook:provide an area where the user can select pages of content by clicking on tabs at the top of the area, like these:
Progressbar:进度条 Treeview: python tkinter 全部组件(widget)及事件类型(event)一览_第15张图片

 

对每一个组件来说,可以通过bind()的方法来将自己定义的函数或方法绑定到具体的事件上,event的类型主要有

Active 当组件的状态从“未激活”变为“激活”的时候触发该事件
Button

当用户点击鼠标按键的时候触发该事件

detail部分指定是具体用哪个键:鼠标左键,鼠标中键(滚轮点击),鼠标右键,滚轮上滚(Linux),滚轮下滚(Linux)

ButtonRelease

当用户释放鼠标按键的时候触发该事件

在大多数情况下,比Button要更好使用,因为如果当用户不小心按下鼠标键,用户可以将鼠标移出组件再释放鼠标,从而避免不小心触发事件

Configure 当组件的尺寸改变的时候触发该事件(窗口管理器触发的重绘事件,当你调整组件的尺寸或者移动应用程序,组件会和窗口一样被重绘)
Deactivate

当组件的状态从“激活”变为“未激活”的时候触发该事件

Destroy当组件被销毁时触发该事件

Enter

当鼠标指针进入组件的时候触发该事件

注意:不是用户按下回车键(回车键是Return

Expose 当窗口或组件的某部分不再被覆盖的时候触发该事件
FocusIn

当组件获得焦点的时候触发该事件

用户可以用Tab键将焦点转移到该组件上(需要该组件的takefocus选项为True)

你也可以调用focus_set()方法使该组件获得焦点

FocusOut 当组件失去焦点的时候触发该事件
KeyPress

当用户按下键盘按键的时候触发该事件

detail可以指定具体的按键,例如表示当大写字母H被按下的时候触发该事件

KeyPress可以缩写为Key

KeyRelease 当用户释放键盘按键的时候触发该事件
Leave 当鼠标指针离开组件的时候触发该事件
Map

当组件被映射的时候触发该事件

意思是在应用程序中显示该组件的时候,例如调用get()方法

Motion

当鼠标在组件内移动的时候触发该事件

MouseWheel

当鼠标滚轮滚动的时候触发该事件

目前该事件仅支持Windows和Mac系统

Unmap

当组件被取消映射的时候触发该事件

意思是在应用程序中不再显示该组件的时候,例如调用grid_remove()方法

Visibility 当应用程序至少有一部分在屏幕中是可见的时候触发该事件

这部分将会逐步添加tkinter中的各种组件及其相关的event

1.关于事件绑定:https://blog.csdn.net/sinat_41104353/article/details/79314691

layout(布局)

这部分将介绍tkinter中的几种布局方式:Grid,Place,pack

 

可参考的文章:

1.https://www.cnblogs.com/wozijisun/p/8794882.html

你可能感兴趣的:(python)