分享

python tkinter 全部组件(widget)及事件类型(event)一览_python中simpleguitk库常用的事件类型_hacker

 求知881 2023-08-09 发布于河南

对于一个简单的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(树视图)

整体框架Message:消息控件;用来显示多行文本,与label比较类似
Button:按钮控件;在程序中显示按钮。PanedWindow:窗口布局管理的插件,可以包含一个或者多个子控件
Checkbutton:多选框控件;用于在程序中提供多项选择框Radiobutton:单选按钮控件;显示一个单选的按钮状态
Canvas:画布控件;显示图形元素如线条或文本Scale:范围控件;显示一个数值刻度,为输出限定范围的数字区间

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

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

Scrollbar:滚动条控件,当内容超过可视化区域时使用,如列表框。
Listbox:列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户Text:文本控件;用于显示多行文本
menu:菜单控件;显示菜单栏,下拉菜单和弹出菜单Combobox:下拉列表
Menubutton:菜单按钮控件,由于显示菜单项。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:

 

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

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

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

detail部分指定是具体用哪个键:<Button-1>鼠标左键,<Button-2>鼠标中键(滚轮点击),<Button-3>鼠标右键,<Button-4>滚轮上滚(Linux),<Button-5>滚轮下滚(Linux)

ButtonRelease

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

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

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

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

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

Enter

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

注意:不是用户按下回车键(回车键是Return<Key-Return>)

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

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

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

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

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

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

detail可以指定具体的按键,例如<KeyPress-H>表示当大写字母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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多