介绍
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。由于 Tkinter 是内置到 Python 的安装包中,所以只要安装好 Python 之后就能使用了,无需另外安装。Tkinter中的ttk对一些控件进行了美化,说是美化其实还是一样丑,所以不会去介绍相同的,只会介绍一些新增的控件。
控件种类
tkinter 控件种类
- Button 按钮
- Checkbutton 多选框按钮
- Entry 输入框
- Frame 框架
- Label 标签
- LabelFrame 标签框架
- Menu 菜单
- PanedWindow 分栏窗口
- Radiobutton 单选按钮
- Scale 滑块
- Scrollbar 滚动条
- Spinbox 输入框(指定数据范围,类型的输入框)
- Text 文本框
- Listbox 列表框
- Canvas 画布
tkinter.ttk 控件种类(除了上面那些,还有下面这些新增的控件)
- Combobox 下拉列表
- Notebook 标签页
- Progressbar 进度条
- Treeview 树状浏览窗口
- Separator 分割线
- Sizegrip 拉伸窗口大小的按钮
基本框架
import tkinter as tk
root = tk.Tk() # 主窗口对象
# 注意,下面的x不是乘号是小写字母x
root.geometry('600x300+100+100') # 设置窗口的大小,以及距离屏幕左上角x轴,y轴的距离。
root.title('test app') # 设置窗口的标题
###### 添加控件,设置控件属性,绑定回调函数
root.mainloop()
添加控件的基本流程
- 新建控件,通常第一个是master参数,代表要把这个控件放在哪个控件上
- 在新建时可以往里面添加参数,设置一些控件属性,如:背景色,字体颜色,高,宽等,也可以在后期设置使用config方法修改/设置属性。
- 把新建的控件放好,控件的布局用pack, place, grid
实例
root = tk.Tk() # 主窗口
root.geometry('600x400+200+200')
tk.Label(root, # 第一个参数就是master,表明要把这个控件放在master里面。
textvariable=mystr,
width=20, # 设置属性
height=3,
bg='#e33e31').pack() # pack布局该控件在主体中的位置。
root.mainloop()
控件与变量的关系
通过一些特定参数,某些组件(如文本输入组件)的当前设置可直接与应用程序的变量关联。这些参数包括 variable 、 textvariable 、 onvalue 、 offvalue 、 value。这种关联是双向的:只要这些变量因任何原因发生变化,其关联的部件就会更新以反映新的参数值。
现已经定义了很多有用的 Variable 子类: StringVar 、 IntVar 、DoubleVar 和 BooleanVar。
- 调用 get() 方法可以读取变量的当前值;
- 调用 set() 方法则可改变变量值。
实例
简单的说,像textvariable
这样的参数,它和变量mystr
是双向绑定的,所以对mystr
设置了值,也相当于对textvariable
设置了值,从mystr
获得的值,也相当于从textvariable
获得值。