Tkinter是Python的标准GUI库
IDLE就是用这个开发的
学过界面编程的朋友应该有听过一句名言“Don’t call me, I will call you.”,意思是一旦进入了主事件循环,就由Tkinter掌管一切了。
Label组件
Button组件
Checkbutton组件:Checkbutton组件就是常见的多选按钮,而Radiobutton则是单选按钮。
Radiobutton组件
LabelFrame组件
Entry组件:输入框
Tkinter总共提供了三种布局组件的方法:pack(),gird()和place()
python中字符串的'none'与None是不相同的
Listbox组件
Scrollbar组件
Scale组件:(tips:像from_这种只是普通的变量)
Text组件
Indexes用法
Mark用法
Tag用法
Text使用技巧:“撤销”操作就是一次弹栈操作,“恢复”就是再次压栈;Tkinter觉得每次焦点切换、用户按下回车键、删除/插入操作的转换等之前的操作算是一次完整的操作。如果希望插入一个字符就算一次完整的操作, 然后每次单击“撤销”就去掉一个字符。做法就是先将autoseparators选项设置为False(因为这个 选项是让Tkinter在认为一次完整的操作结束后自动插入“分隔符”),然 后绑定键盘事件,每次有输入就用edit_separator()方法人为地插入一 个“分隔符”。
Canvas是一个通用的组件,它通常用于显示 和编辑图形,可以用它来绘制直线、圆形、多边形,甚至是绘制其他组件。在Canvas组件上绘制对象,可以用create_xxx()方法(xxx表示对象 类型,例如直线line、矩形rectangle和文本text等)
# p17_36.py 使用画布实现一个五角星
from tkinter import *
import math as m
root = Tk()
w = Canvas(root, width=200, height=100, background="red")
w.pack()
center_x = 100
center_y = 50
r = 50
points = [
# 左上点
center_x - int(r * m.sin(2 * m.pi / 5)),
center_y - int(r * m.cos(2 * m.pi / 5)),
# 右上点
center_x + int(r * m.sin(2 * m.pi / 5)),
center_y - int(r * m.cos(2 * m.pi / 5)),
# 左下点
center_x - int(r * m.sin(m.pi / 5)),
center_y + int(r * m.cos(m.pi / 5)),
# 顶点
center_x,
center_y - r,
# 右下点
center_x + int(r * m.sin(m.pi / 5)),
center_y + int(r * m.cos(m.pi / 5)),
]
w.create_polygon(points, outline="green", fill="yellow")
mainloop()
Menubutton组件
OptionMenu组件
Message组件
Spinbox组件
PanedWindow组件:是一个空间管理组件
Toplevel组件
事件绑定:事件可以有各种来源,包括用户触发的鼠标、 键盘操作和窗口管理器触发的重绘事件(在多数情况下是由用户间接引起的)。Tkinter提供一个强大的机制可以自由地处理事件,对于每个组件来 说,可以通过bind()方法将函数或方法绑定到具体的事件上。当被触发的事件满足该组件绑定的事件时,Tkinter就会带着事件描述去调用 handler()方法。
事件序列
事件类型
modifier
Event对象
布局管理器
• pack是按添加顺序排列组件。
• grid是按行/列形式排列组件。
• place则允许程序员指定组件的大小和位置。
标准对话框
Tkinter提供了三种标准对话框模块,分别是: • messagebox • filedialog • colorchooser
打开和保存文件