Tkinter是Python的标准GUI库

IDLE就是用这个开发的

基于python的组态软件 python组件化软件框架_jupyter

 学过界面编程的朋友应该有听过一句名言“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()方法。

事件序列

  事件类型

基于python的组态软件 python组件化软件框架_基于python的组态软件_02

   modifier

基于python的组态软件 python组件化软件框架_开发语言_03

 Event对象

基于python的组态软件 python组件化软件框架_python_04

 布局管理器

• pack是按添加顺序排列组件。

• grid是按行/列形式排列组件。

• place则允许程序员指定组件的大小和位置。

标准对话框

Tkinter提供了三种标准对话框模块,分别是: • messagebox   • filedialog  • colorchooser

基于python的组态软件 python组件化软件框架_开发语言_05

 打开和保存文件

基于python的组态软件 python组件化软件框架_基于python的组态软件_06