窗体容器和组件
一、 窗体
窗体是带有标题、边框的一个顶层容器,在其内部可以添加其它组件。其外观如图1所示:

设计一个窗体的主要步骤如下:
(1)导入tkinter包: import tkinter
(2)创建窗体对象: win = tkinter.Tk()
(3)设置窗体初始的大小(宽x高)和位置(x, y):
win.geometry('宽x高 + x坐标 + y坐标')
(4)设置事件循环,使窗体一直保持显示状态:
win. mainloop()
【例1】通过Tk对象创建一个最简单窗体。
import tkinter # 将tkinter模块(也称“软件包”)导入
win = tkinter.Tk() # 定义一个窗体,名为win,Tk()是tkinter模块中的一个非常重要的类
win.title('最简单窗体') # 定义窗体标题
win.geometry('250x120+50+10')
# 设置窗体的大小250x120像素和初始位置(50,10)
win.mainloop() # 表示事件循环,使窗体一直保持显示状态

说明:在窗体(也称容器、窗口对象)win里,可以添加组成GUI的各种控件(也称“组件”,实际上它也是一个子类),例如,人家熟知的“标签”、“按钮”、“列表框”、“菜单”、“滚动条”等,它们都是一个个“类”,都有自己的特有属性和方法。
上面示例程序短小,但俗话说:“麻雀虽小,五脏俱全。”,它描述了Python中开发GUI时的基本步骤。下面就是让GUI启动、为GUI添加控件并使GUI得以运行的5个主要步骤:
(1)导入tkinter模块,获得对tkinter的访问权;
(2)创建名为win(或top或root,起什么名字不重要)的窗体(也 称顶层窗口),以容纳GUI所需的控件;
(3)在窗体(也称窗口)中,添加所需的对象(即实例),组织和设计实际的GUI;
(4)调用方法pack()或其他版面布局方法(如: ),使添加到窗体里的控件真正显现出来;
(5)通过调用方法mainloop(),让窗体(顶层窗口)进入等待事件发生的循环中。
二、 标签
标签是用于窗体容器中显示文字内容的组件。标签的基本格式为:
label = tkinter.Label(容器名称, 显示文字或图像内容, 显示位置, 文字字体、颜色等)

【例4-2】标签应用示例。

#程序代码:py02标签.py
import tkinter
#定义一个窗体
win = tkinter.Tk ()#定义窗体标题
win.title('标签示例')
win.geometry('250x120') # 定义窗体的大小400x200像素
#定义标签 label
label = tkinter.Label(win,text ='欢迎进入 Python 世界!',font='宋体',fg='blue') # fg='#00ffff'
label.pack()
win.mainloop()
三、 按钮和事件处理
1、按钮对象
(1)按钮Button的常用属性
#综合示例 pyUI702窗体-标签-按钮-事件综合应用
import tkinter #GUI模块库
import random #随机函数
win = tkinter.Tk() #定义窗体
win.title('HX 学习之窗 ')
win.geometry ('560x380')
tz =[ '\n 少壮不努力,老大学程序. ','\n 人生苦短,我学Python! ', '\n 学习计算机专业,前程无忧! ','\n 赞!真棒!']
def mClick(): #定义事件函数 mClick
k=random.randint(0,3) #随机产生一个整数
lab= tkinter.Label(win,text =tz[k],font='宋体',fg='blue')
lab.pack ()
Btn1 =tkinter.Button(win,text="点击我!",command =mClick)
Btn2 =tkinter.Button(win,text=" OK!",fg='Red',command =win.quit)
Btn1.pack()
Btn2.pack()
#调用事件函数 mClick
win.mainloop ()

