一、简介
Python提供了多个图形开发界面的库,几个常用 Python GUI 库如下:
1.Tkinter模块("Tk 接口")是 Python的标准 Tk GUI工具包的接口 .Tk和 Tkinter可以在大多数的 Unix平台下使用,同样可以应用在 Windows和 Macintosh系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
2.wxPython是一款开源软件,是 Python语言的一套优秀的 GUI图形库,允许 Python程序员很方便的创建完整的、功能键全的 GUI 用户界面。
3.Jython程序可以和 Java无缝集成。除了一些标准模块,Jython使用 Java的模块。Jython几乎拥有标准的Python中不依赖于 C语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT 或者 SWT。Jython 可以被动态或静态地编译成 Java字节码。
4.PyQT Qt是一种开源的 GUI库,适合大型 GUI程序开发,PyQT是 Qt工具包标准的 Python 实现。我们也可以使用 Qt Desginer界面设计器快速开发 GUI 应用程序。
今天主要介绍到的就是Tkinter模块。
二、Tkinter模块
Tkinter是 Python的标准 GUI库。Python使用 Tkinter可以快速的创建 GUI应用程序。由于 Tkinter是内置到 Python的安装包中、只要安装好 Python之后就能 import Tkinter 库、而且IDLE也是用 Tkinter编写而成、对于简单的图形界面 Tkinter还是能应付自如。不过值得注意的是Python3.x 版本使用的库名为 tkinter,即首写字母 T为小写
1.创建GUI程序的基本思路:
导入Tkinter模块
创建控件
指定这个控件的master,即这个控件属于哪一个
告诉GM(geometry manager)有一个控件产生了
示例:
from tkinter import *
from tkinter import messagebox
#送花功能函数
def hua(e):
messagebox.showinfo('新信息', '送你一朵玫瑰花')
win = Tk()#创建主界面窗口
btn = Button(win)#在主窗口创建按钮
btn['text']='点我就送花'
btn.pack()
btn.bind('<Button-1>', hua)#按钮绑定事件触发的功能函数
win.mainloop()#调用组件的 mainloop方法,进入事件循环
2.GUI编程整体描述
图形用户界面是由一个个组件组成,就像小孩“搭积木”一样最终组成了整个界面。有
的组件还能在里面再放置其他组件,我们称为“容器”。Tkinter的 GUI组件关系图如下:
Misc和Wm:Tkinter的 GUI组件有两个根父类,它们都直接继承了 object类:
Misc是所有组件的根父类;Wm主要提供了一些与窗口管理器通信的功能函数。
Pack、Place、Grid 是布局管理器。布局管理器管理组件的:大小、位置。通过布局管
理器可以将容器中的组件实现合理的排布;
BaseWidget是所有组件的父类;
Widget是所有组件类的父类。Widget一共有四个父类:BaseWidget、Pack、Grid、
Place。意味着,所有 GUI组件同时具备这四个父类的属性和方法。
3.Tkinter常用组件
Toplevel 顶层 容器类,可用于为其他组件提供单独的容器;Toplevel有点类似于窗口
Button 按钮 代表按钮组件
Canvas 画布 提供绘图功能,包括直线、矩形、椭圆、多边形、位图等
Checkbutton 复选框 可供用户勾选的复选框
Entry 单行输入框 用户可输入内容
Frame 容器 用于装载其它 GUI 组件
Label 标签 用于显示不可编辑的文本或图标
LabelFrame 容器 也是容器组件,类似于 Frame,但它支持添加标题
Listbox 列表框 列出多个选项,供用户选择
Menu 菜单 菜单组件
Menubutton 菜单按钮 用来包含菜单的按钮(包括下拉式、层叠式等)
OptionMenu 菜单按钮 Menubutton的子类,也代表菜单按钮,可通过按钮打开一个菜单
Message 消息框 类似于标签,但可以显示多行文本;后来当 Label 也能显示多行文本之后,该组件基本处于废弃状态
PanedWindow 分区窗口 该容器会被划分成多个区域,每添加一个组件占一个区域,用户可通过拖动分隔线来改变各区域的大小
Radiobutton 单选钮 可供用户点边的单选钮
Scale 滑动条 拖动滑块可设定起始值和结束值,可显示当前位置的精确值
Spinbox 微调选择器 用户可通过该组件的向上、向下箭头选择不同的值
Scrollbar 滚动条 用于为组件(文本域、画布、列表框、文本框)提供滚动功能
Text 多行文本框 显示多行文本
tkMessageBox 消息框 用于显示你应用程序的消息框
4.标准属性:
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。
Dimension 控件大小;
Color 控件颜色;
Font 控件字体;
Anchor 锚点;
Relief 控件样式;
Bitmap 位图;
Cursor 光标;
5.几何管理:
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置
pack() 包装;
grid() 网格;
place() 位置;
tkinter的详细内容可见官方文档网址:https://docs.python.org/3.7/library/tk.html
三、Tkinter的应用实例: