目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务11.2 窗体容器和组件

窗体容器和组件

一、 窗体

窗体是带有标题、边框的一个顶层容器,在其内部可以添加其它组件。其外观如图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 ()