目录
一、基础介绍
二、创建窗口
1、创建完窗口后还需要知道窗口的相关属性
2、widget相关控件
3、原本tkinter有的Widget。
4、widget的共同属性
1. Configuration
2. Event Processing
3. Event callbacks
4. Alarm handlersafter(time,callback):间隔指定时间后调用callback( )方法。
一、基础介绍
1.GUI英文全称是Graphical User Interface,中文为图形用户接口。
2.tkinter是一个开放源码的图形接口开发工具,原来是用TCL(Tool Command Language,工具命令语言)编写的GUI函数库,最初发展是从1991年开始,具有跨平台的特性,可以在Linux、Windows、Mac OS等操作系统上执行。这个tkinter工具提供许多图形接口,例如,标签(Label)、菜单(Menu)、按钮(Button)等。
使用tkinter模块,需要导入
from tkinter import *
在使用tkinter模块的时候我们需要检查tkinter的版本
Import tkinter
print(tkinter.TkVersion)
一般8.5以后的版本功能比较健全。
二、创建窗口
我们设计GUI需要先创建窗口
Root=Tk() #root是自定义的Tk对象名称,也可以取其他的
Root.mainloop()#放到程序的最后一行
通常将使用Tk( )方法建立的窗口称为根窗口,之后可以在此根窗口中建立许多控件,也可以在此根窗口中建立上层窗口。本例中笔者用root当作对象名称,读者也可以自行取其他名称。上述mainloop( )方法可以让程序继续执行,同时进入等待与处理窗口事件,单击窗口右上方的“关闭”按钮,此程序才会结束。
注:
在GUI程序设计中,有时候也将上述所建立的窗口(window)称为容器(container)。
1、创建完窗口后还需要知道窗口的相关属性
Root.configure(bg='red')#除了可以使用名称直接设置色彩,还可以使用十六进制方式设置色彩RGB,其中每个色彩用两个十六进制数字表示。
geometry( )方法除了可以设置窗口的大小,也可以设置窗口的位置,此时它的语法格式如下。
Geometry(width x height+x+y)
上述widthxheight已说明是窗口的宽和高,width与height用x分隔。“+x”表示x是窗口左边距离屏幕左边的距离,如果是“-x”,则表示x是窗口右边距离屏幕右边的距离。“+y”表示y是窗口上边距离屏幕上边的距离,如果是“-y”则表示y是窗口下边距离屏幕下边的距离。
两种不同的设计方式
在tkinter模块里面可以使用winfo_screenwidth()屏幕宽度和winfo_screenheight()屏幕高度来获取屏幕高度和宽度。
2、widget相关控件
Widget可以翻译为控件或组件或部件。
窗口建立完成后,下一步是在窗口内建立控件,我们将这些控件统称为Widget。
(1)Button(按钮)。
(2)Canvas(画布)。
(3)Checkbutton(多选按钮)。
(4)Entry(文本框)。
(5)Frame(框架)。
(6)Label(标签)。
(7)LabelFrame(标签框架)。
(8)Listbox(列表框)。
(9)Menu(菜单)。
(10)MenuButton(菜单按钮):这个是过时的控件,已经被Menu( )取代。
(11)Message(消息)。
(12)OptionMenu(下拉式菜单)。
(13)PanedWindow(面板)。
(14)Radiobutton(单选按钮)。
(15)Scale(尺度)。
(16)Scrollbar(滚动条)。
(17)Spinbox(可微调输入控件)。
(18)Text(文字区域)。
(19)Toplevel(上层窗口)。
在tkinter中所有的Widget其实都是面向对象的类,我们通过调用构造方法来达到建立相关Widget控件的目的。
加强版的tkinter模块tkinter在后来也推出了加强版的模块,称为tkinter.ttk,有时简称ttk,这个模块中有17个Widget。
3、原本tkinter有的Widget。
(1)Button
(2)Checkbutton
(3)Entry
(4)Frame
(5)Label
(6)LabelFrame
(7)MenuButton
(8)Radiobutton
(9)Scale
(10)Scrollbar
(11)PanedWindow下列是ttk模块新增的Widget。
(1)Combobox。
(2)Notebook。
(3)Progressbar。
(4)Separator。
(5)Sizegrip:可以拖曳最上层窗口右下方更改最上层窗口的大小。
(6)Treeview。
导入上述模块可以使用下列方式。
From tkinter import ttk
如果使用下列方式导入ttk,可以覆盖原先tkinter的控件。
From tkinter import *
From tkinter.ttk import *
使用ttk可以有更好的外观,而且也可以跨平台使用,不过并没有100%兼容。例如,fg、bg参数或一些外观相关的参数tk和ttk是不相同。ttk使用的是ttk.Style类别。
4、widget的共同属性
Widget的共同属性设计控件时会看到下列共同属性。
Dimensions:大小。
Colors:颜色。
Fonts:字形。
Anchor:锚(位置参考点)。
Relief styles:属性边框。
Bitmaps:显示位图。
Cursors:鼠标外形。
设计控件时会看到下列常用的共同方法。
1. Configuration
(1)config(option=value):Widget属性可以在建立时设置,也可以在程序执行时使用config( )重新设置。
(2)cget("option"):取得option参数值。
(3)keys( ):可以用此方法获得所有该Widget的参数。
2. Event Processing
(1)mainloop( ):让程序继续执行,同时进入等待与处理窗口事件。
(2)quit( ):Python Shell窗口结束,但是所建窗口继续执行。
(3)update( ):更新窗口画面。
3. Event callbacks
(1)bind(event,callback):事件绑定。
(2)unbind(event):解除绑定。