#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import *
class App:
def __init__(self, master):
frame = Frame(master) #Frame框架小部件,master代表父类框架,frame为主窗口
frame.pack() #很重要,自适应所给的text里面的文字大小,并且将在window上呈现出来
self.button = Button(
frame, text="QUIT", fg="red", command=frame.quit
)
self.button.pack(side=LEFT)
Button(frame, text="Hello", command=self.say_hi).pack(side=LEFT)
def say_hi(self):
print ("Hello,World")
root = Tk() #1.root小部件,一个普通窗口,有一个标题栏和其他窗口提供的装饰,一个程序只有一个root小部件,必须在任何其他小部件之前创建它
app = App(root) #2.创建其他部件
root.mainloop() #3.进入Tk的事件循环,以保持窗口一直运行和处理其他操作事件,时间循环不仅仅处理来自用户的事件(如鼠标点击和按键)或窗口系统(如重绘事件和窗口配置消息,还处理有Tkinter本身排队的操作。)
root.destroy() #4. optional; see description below
Tkinter Classes
Widget classes(部件类)
Tkinter支持15个核心小部件:
Button:一个简单的按钮,用于执行命令或其他操作。
Canvas:结构化图形。这个小部件可以用来绘制图形和绘图,创建图形编辑器,以及实现自定义小部件。
Checkbutton:表示一个可以有两个不同值的变量。点击按钮在值之间切换。
Entry:一个文本输入字段。
Frame:一个容器部件。框架可以有边框和背景,用于在创建应用程序或对话框布局时对其他部件进行分组。
Label:显示一个文本或一个图像。
Listbox:显示一个备选方案列表。这个列表框可以被配置为获得radiobutton或检查表的行为
Menu:一个菜单面板。用于实现下拉菜单和弹出菜单。
Menubutton:menubutton。用于实现下拉菜单。
Message:显示一个文本。类似于label部件,但可以自动将文本包装到给定的宽度或纵横比。
Radiobutton:表示一个变量的一个值,它可以有多个值之一。点击按钮将变量设置为该值,并清除与同一变量相关的所有其他radio按钮。
Scale:允许你通过拖动一个“滑块”来设置一个数值。
Scrollbar:用于画布、条目、列表框和文本小部件的标准滚动条。
Text:格式化的文本显示。允许您显示和编辑带有各种样式和属性的文本。也支持嵌入的图像和窗口。
Toplevel:一个容器小部件显示为一个单独的顶层窗口。
在Python 2.3(Tk 8.4)中,添加了以下小部件:
LabelFrame:框架小部件的一个变体,它可以同时绘制边框和标题。
PanedWindow:一个容器小部件,它可以在可调整的窗格中组织子部件。
Spinbox:入口小部件的一个变体,用于从范围或有序集合中选择值。
注意,在Tkinter中没有widget类层次结构;所有小部件类都是继承树中的sibings(兄弟)。
所有这些小部件都提供了Misc和几何管理方法、配置管理方法和小部件本身定义的附加方法。此外,Toplevel班级还提供窗口管理器接口。这意味着典型的窗口小部件类提供了大约150个方法。
Mixins
Tkinter模块提供了与Tk中各种小部件类型相对应的类,以及许多mixin和其他助手类(mixin是一个设计用来与其他类使用多重继承相结合的类)。当您使用Tkinter时,您永远不应该直接访问mixin类。
Implementation mixins(实现混合)
Misc class被根窗口和小部件类用作mixin。它提供了大量的Tk和窗口相关的服务,因此可以为所有Tkinter核心部件提供。这是由代表团完成的;小部件简单地将请求转发给适当的内部对象。
Wm class被根窗口和Toplevel小部件类用作mixin。它还通过委托提供窗口管理器服务。
使用这样的委托可以简化您的应用程序代码:一旦您有了一个小部件,您就可以使用小部件实例上的方法访问Tkinter的所有部分。
Geometry mixins(几何混合)
Grid、Pack and Place classes被widget classes(小部件)用作mixins。它们还通过委托提供对各种几何管理器的访问。
Grid:网格几何管理器允许您通过在二维网格中组织小部件来创建表格式的布局。要使用这个几何管理器,请使用网格方法。
Pack:pack几何管理器允许您通过将小部件“打包”成父小部件来创建布局,方法是将它们作为放置在框架中的矩形块。要为小部件使用这个几何管理器,请在该小部件上使用pack方法来设置。
Place:place几何管理器允许您显式地在给定的位置放置一个小部件。要使用这个几何管理器,请使用place方法。
Widget configuration management(小容器配置管理)
小部件类将Misc类与几何mixin混合在一起,并通过cget和configure方法以及部分字典接口添加配置管理。后者可用于设置和查询单个选项