对于一个简单的GUI程序设计来说,我觉得无非就是三个要素,widget(部件),layout(布局),event(事件的响应)
个人感觉,GUI就和搭积木差不多,widget就好比是各种形状的积木,比如长方形,正方形,三角形等等。layout就 是如何将这些积木搭建成为一个小房子,小木屋。
之前接触过一点 java 的图形界面设计,但是基本都忘记了,到了python决定写一点笔记,因为找教程是一件很麻烦的事情。
这篇文章就当做汇总列表,之后会一直更新列表的内容
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(树视图)
对每一个组件来说,可以通过bind()的方法来将自己定义的函数或方法绑定到具体的事件上,event的类型主要有
Active | 当组件的状态从“未激活”变为“激活”的时候触发该事件 |
Button | 当用户点击鼠标按键的时候触发该事件 detail部分指定是具体用哪个键: |
ButtonRelease | 当用户释放鼠标按键的时候触发该事件 在大多数情况下,比Button要更好使用,因为如果当用户不小心按下鼠标键,用户可以将鼠标移出组件再释放鼠标,从而避免不小心触发事件 |
Configure | 当组件的尺寸改变的时候触发该事件(窗口管理器触发的重绘事件,当你调整组件的尺寸或者移动应用程序,组件会和窗口一样被重绘) |
Deactivate | 当组件的状态从“激活”变为“未激活”的时候触发该事件 Destroy当组件被销毁时触发该事件 |
Enter | 当鼠标指针进入组件的时候触发该事件 注意:不是用户按下回车键(回车键是Return |
Expose | 当窗口或组件的某部分不再被覆盖的时候触发该事件 |
FocusIn | 当组件获得焦点的时候触发该事件 用户可以用Tab键将焦点转移到该组件上(需要该组件的takefocus选项为True) 你也可以调用focus_set()方法使该组件获得焦点 |
FocusOut | 当组件失去焦点的时候触发该事件 |
KeyPress | 当用户按下键盘按键的时候触发该事件 detail可以指定具体的按键,例如 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
这部分将介绍tkinter中的几种布局方式:Grid,Place,pack
可参考的文章:
1.https://www.cnblogs.com/wozijisun/p/8794882.html