GUI-Tkinter 编程
Tkinter 是使用 python 进行窗口视窗设计的模块,是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面。
注意:Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写。
一、python 界面编程 Tkinter 15种控件
控件 | 名称 | 描述 |
---|---|---|
Button | 按钮 | 类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件 |
Canvas | 画布 | 提供绘图功能(直线、椭圆、多边形、矩形) ;可以包含图形或位图 |
Checkbutton | 选择按钮 | 一组方框,可以选择其中的任意个(类似 HTML 中的 checkbox) |
Entry | 文本框 | 单行文字域,用来收集键盘输入(类似 HTML 中的 text) |
Frame | 框架 | 包含其他组件的纯容器 |
Label | 标签 | 用来显示文字或图片 |
Listbox | 列表框 | 一个选项列表,用户可以从中选择 |
Menu | 菜单 | 点下菜单按钮后弹出的一个选项列表,用户可以从中选择 |
Menubutton | 菜单按钮 | 用来包含菜单的组件(有下拉式、层叠式等等) |
Message | 消息框 | 类似于标签,但可以显示多行文本 |
Radiobutton | 单选按钮 | 一组按钮,其中只有一个可被“按下” (类似 HTML 中的 radio) |
Scale | 进度条 | 线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值 |
Scrollbar | 滚动条 | 对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能 |
Text | 文本域 | 多行文字区域,可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea) |
Toplevel | 顶级 | 类似框架,但提供一个独立的窗口容器 |
注意:在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟关系。
所有这些窗口部件提供了Misc和几何管理方法、配置管理方法和部件自己定义的另外的方法。此外,Toplevel类也提供窗口管理接口。这意味一个典型的窗口部件类提供了大约150种方法。
标准属性
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。
属性 | 描述 |
---|---|
Dimension | 控件大小 |
Color | 控件颜色 |
Font | 控件字体 |
Anchor | 锚点 |
Relief | 控件样式 |
Bitmap | 位图 |
Cursor | 光标 |
几何管理
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置
几何方法 | 描述 |
---|---|
pack() | 包装 |
grid() | 网格 |
place() | 位置 |
二、创建一个GUI程序
- 导入 Tkinter 模块
- 创建控件
- 指定这个控件的 master, 即这个控件属于哪一个
- 告诉 GM(geometry manager) 有一个控件产生了。
import tkinter
top = tkinter.Tk()
# 进入消息循环
top.mainloop()
代码显示窗口如下:
import tkinter
import random
top = tkinter.Tk()
top.title('随机点名')
lb = tkinter.Label(top, text='点名', width=50, height=30, fg='red')
lb.pack()
def c_label():
name =['小红','小明','小华','张三','李四','王五','赵六','孙七']
i = random.randint(0, len(name) - 1)
lb.config(text=name[i], fg='green')
top.flag = False
bt = tkinter.Button(text='天选之子', width=12, bg='pink', command=c_label)
bt.pack()
top.mainloop()
执行结果最初显示界面如下:
点击按钮“天选之子”之后显示的界面如下: