tkinter的基本使用
1.创建空窗口
首先导入tkinter模块,使用Tk()类创建一个窗口对象,但此时还不能显示,还要打开mainloop()进入消息循环,才可以正常显示窗口。因为loop循环的意思,mainloop会让窗口不断的刷新,如果没有它,就是一个静态的window,传入进去的值就不会有循环,窗口就会一闪而过,几乎看不到它的存在。
仅仅三行代码就可以创建出这样的一个空窗口,我们可以将它放大缩小。
2.窗口内嵌元素
创建了窗口,我们就可以往里面放东西了,比如我们第一个GUI程序里的Button,也就是按钮,当然不只它一个,还有很多其他元素,如下表所示。
控件控件名称及描述。
Button按钮,可以在窗口中显示一个按钮来执行特定操作。
Canvas画布,绘画功能,如点,线,面等。
Frame框架,在窗口中显示一个矩形区域,用来存放其他GUI元素。
Entry输入,允许用户输入单行文本。
Checkbutton复选框,提供多项选择框,允许用户选择或反选某一选项
Label标签,显示不可编辑的文本和图标。
Listbox列表框,选项列表,让用户从中选择一项。
Menubutton菜单按钮,用来包含菜单的组件。
Menu菜单,点下菜单按钮后弹出的一个选项列表,让用户选择。
Message消息,可以显示多行文本类似于label。
Scrollbar滚动条,内容超过当前窗口范围时使用。.
Scale进度条,线性滑块组件,可以设定起始和终止值,会显示当前位置的精确值。
Radiobutton单选按钮,用户可以从多个选项中选取一个,不能多选。
Text文本,显示多行文本。
Toplevel顶层,用来提供一个单独的窗口,类似于Frame。
Spinbox输入,可以指定输入范围值的Entry。
LabelFrame容器控件,用于复杂的窗口布局。
PanedWindow窗口布局管理插件,可以包含多个子控件。
首先介绍几个简单的函数。
title(),顾名思义是标题的意思,这里是给窗口对象设置标题,如运行结果的左上角所示文本。接下来的geometry()函数是设置窗口的大小和位置,其参数的具体含义如下:geometry(“weightxheight±x±y”),窗口的宽和高,中间一个字母’x’连接表示乘号,然后的±x±y表示距离屏幕的距离,+x表示距屏幕左边的距离,-x表示距屏幕右边的距离;+y表示距离屏幕上边的距离,-y表示距离屏幕下边的距离。
tk.Label()就是我们的标签控件,里面的第一个参数必须是窗口对象,后面的属性均可以根据需要设置,以上分别为设置标签文本内容、背景颜色,字体字号、标签宽和高。
设置好标签后,需要放置标签,即label.pack(),否则显示不出来。
最后进入消息循环,显示窗口。
接下来测试Button,即按钮,它和Label很类似,但是可以扩展功能,可以自由设置按下后触发的事件,就像我们写的一个GUI程序演示的那样。
为了便于类别,在上述代码的基础上继续写。
上述代码是对Button的基本设置,可以看到和Label的设置基本无异。
不过我们可以点击这个按钮,而Label是不能点击的,接下来我们可以为按钮绑定事件,也就是点击按钮后触发的功能。
这里增加功能:点击按钮后会弹出一个窗口,并显示提示语。
需要用到messagebox函数,然后把弹出窗口的功能写在一个自定义函数fun中,接下来将这个函数与button绑定,方法可以使用第一个GUI的演示,使用bind()函数绑定。不过这里直接在button定义里面增加了一个参数command,给它传入fun参数,也可以完成绑定。