Python-GUI|Tkinter模块

谁说我不能喝 提交于 2021-01-26 08:19:14


01

Tkinter


Tkinter模块是Python的标准Tk GUI工具包的接口,它并不是必须掌握的,但是掌握一个Python的标准图形库还是非常有意思的一件事


它可以跨平台运行在Windows,Linux和Mac等系统上。


这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么!


02

第一个Tk-GUI


from tkinter import *


root=Tk()

root.title('first tk gui')

root.geometry('500x200')


x = Label(root,text='Hello',bg='green',font=('Arial',12),width=15,height=2)

x.pack()

x.mainloop()


首先导入tkinter 模块,这个模块包括了所需要的所有的类和函数


然后,需要创建一个(根)窗口,它是一个普通的窗口,带有标题栏、最小化按钮、最大化按钮等,即:root = Tk() ,调用title接口,geometry分别设置根窗口的标题,大小。


然后我们就可以在该窗口上创建一个Label,即贴一个标签,这个Label可以显示文本、图标、图像等等。我们这里使用text来指定要显示的文本,而第一个参数root,表明x的父控件是root,bg属性表示label的背景色,font指明文本所用字体,width,height指明label的宽度和高度。


接下来,调用这个Label的pack方法,pack方法属于Pack类(属于几何管理器), tk中的每一个控件都继承自 class Widget(BaseWidget, Pack, Place, Grid),Widget都继承于Pack,Place,Grid,它们都属于几何管理器类。


最后一行代码,x.mainloop()即可进入事件循环了,mainloop定义在Misc类中(Methods defined on both toplevel and interior widgets)。


这样一个最简单的界面程序就完成了。 




03

梳理第一个GUI用到的类


Wm (Provides functions for the communication with the window manager)Misc (Methods defined on both toplevel and interior widgets)

  |

  |---BaseWidget

            |

            |---Widget

                   |      Pack, Grid, Place

                   |         |        |        |

                   |-------     Label 



04

Tkinter控件梳理


Button  按钮控件;在程序中显示按钮

Canvas 画布控件;显示图形元素,如线条或文本

Checkbutton    多选框控件,用于在程序中提供多项选择框

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

Frame  框架控件;在屏幕上显示一个矩形区域,多用来作为容器

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

Listbox    列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Menubutton 菜单按钮控件,由于显示菜单项。

Menu   菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message    消息控件;用来显示多行文本,与label比较类似

Radiobutton    单选按钮控件;显示一个单选的按钮状态

Scale  范围控件;显示一个数值刻度,为输出限定范围的数字区间

Scrollbar  滚动条控件,当内容超过可视化区域时使用,如列表框

Text   文本控件;用于显示多行文本

Toplevel   容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox    输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow    PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

tkMessageBox   用于显示你应用程序的消息框。



05

Tkinter共用属性


Dimension 控件大小;

Color 控件颜色;

Font 控件字体;

Anchor 锚点;

Relief 控件样式;

Bitmap 位图;

Cursor 光标;



算法channel会有系统地,认真地推送:基础算法/机器学习/深度学习/spark/tensorflow等全栈内容。期待您的参与!QQ交流群: 646901659 或进入公众号界面->导读系列下,进入微信讨论群。

本文分享自微信公众号 - Python与算法社区(alg-channel)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!