12-2 tkinker概述Python程序设计基础教程(微课版第2版)_第1页
12-2 tkinker概述Python程序设计基础教程(微课版第2版)_第2页
12-2 tkinker概述Python程序设计基础教程(微课版第2版)_第3页
12-2 tkinker概述Python程序设计基础教程(微课版第2版)_第4页
12-2 tkinker概述Python程序设计基础教程(微课版第2版)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tk图形库在Python下的封装tkinker概述CHAPTER12CONTENTS目

录01类的层次结构02基本开发步骤tkinker概述默认安装“sudoapt-getinstallpython3-tk”

tkinter

对应

Python

的一个包tkinker概述安装完成后输入“python–mtkinter”测试是否正常一切正常将显示简单的GUI界面显示tkinter所对应的Tk库的版本01020304tkinker概述后文测试例子都将针对Windows10操作系统,其它平台显示可能存在差异Windows10

截图Ubuntu18.04

截图tkinker概述tkinter组织方式控件的显示与交互tkinter基本的类按照面向对象的方式通过相应的Python类实现Tk类(每个应用程序只需1个Tk类)tkinker概述实

例应用程序根窗口在用户屏幕上随意移动和改变大小实例表示应用程序Tk类的实例“顶层窗口”tkinker概述简单应用程序只有一个顶层窗口复杂应用程序多个顶层窗口,需TopLevel类,通过继承tkinker概述Scale、LabelFrame、Menu、Spinbox及CanvasListboxCheckbuttonRadiobuttonButtonFrameLabelEntryTextScrollbartkinker概述用于构造特定功能的GUI控件构造GUI控件它们不能由用户移动和改变大小,只能跟随父窗口移动不同于顶层窗口常用类tkinker概述用于用户事件处理的Event类PackGridPlace用于布局管理的类tkinker概述用户只需调用控件tkinter

会在需要时自动生成对象非控件类型用于布局管理和用于事件管理不需要实例化不需要程序直接实例化相应的对象tkinker概述控制变量用于在多个控件之间共享共同的属性值变量值发生改变与之共享的各个控件的属性也自动改变tkinker概述tkinter

三种类型的控制变量StringVarIntVarDoubleVar字符串型整

型浮点型tkinker概述创建控制变量使用相应类的构造器进行实例化用get和set方法读取和设置控制变量值tkinker概述以上类直接定义在包的__init__文件中子模块tkinter

包含了多个子模块功能性子模块提供了一些样式更丰富或者具有特定功能的控件tkinker概述tkinter

子模块filedialog01子模块提供了用于文件操作的对话框font02封装了用于字体样式控制的相关类ttk03constants04包含很多预定义的常量值,如表示布局关系的TOP、BOTTOM、LEFT、RIGHT等,该子模块在导入主模块时默认被导入,可直接用对Tk库在8.5版本后引入的所谓主题式控件的封装,其使得控件在外观上更接近平台的原生界面样式。ttk子模块重写了tkinter主模块中同名的基本控件类,但使用方式有所不同,另ttk还提供了树状视图等高级控件tkinker概述深入学习需要进一步参考Tk库的官方文档:

https://tcl.tk/man/tcl8.6/TkCmd/contents.htmtkinker概述tkinter

程序开发通过实例化得到一组控件对象使用控件对象进行界面的布局设计同时绑定相应的事件处理程序tkinker概述211Tk类的实例化创建各种控件实例对各个控件进行布局事件绑定启动事件循环程序2345tkinker概述Tk类的实例化调用Tk类的构造器实例化一个Tk实例根据需要可指定程序名及图标等属性tkinker概述每个应用程序都需要也只需一个Tk类的实例,如果不显式构造Tk实例,在创建其它控件时会默认创建,不建议这么做tkinker概述BA根窗口的初始化大小最大最小宽度C限制窗口的缩放功能对于某些GUI,为了防止用户调整根窗口导致内部布局混乱,通常需要设置tkinker概述geometrymaxsize设置用户拖曳时窗口最小宽和高minsize设置是否允许在宽和高方向进行拖拽resizable设置用户拖曳时窗口最大宽和高设置窗口初始宽高,注意参数为字符串类型tkinker概述调用tkinter的控件类的构造器指明父窗口指明各种外观及行为属性创建各种控件实例控件对象的构造流程类似tkinker概述

010203321第一个参数:可选参数master表示父窗口对象,默认为None;第二个参数:可选参数cnf默认是一个空的字典对象;第三个参数:可变的关键字参数后两个参数是用于控制控件对象的外观和行为属性tkinker概述每一个控件实例都必须有一个父窗口Tk对象其它容器类控件实例tkinker概述

如果没有Tk类实例程序自动找已存在的Tk类实例自动创建一个Tk类实例建议显式设置父窗口将父窗口设置None作为父窗口tkinker概述父

确定其在父窗口中的具体位置

确定父窗口与其他控件的摆放关系对各个控件进行布局tkinker概述tkinter提供三种布局管理器PlaceGrid实现不同的布局需求Packtkinker概述对控件进行布局时,不需要显式创建这些布局管理器类的对象,只需要调用控件对应的一个布局方法tkinker概述tkinter提供三种布局管理器PlaceGrid实现不同的布局需求Packtkinker概述事件绑定GUI应用程序开发的另一个主要任务事件处理程序的设计tkinker概述

事件处理程序:对用户各种操作事件的响应处理不同的事件可能需要不同的处理程序,这种事件与事件处理程序之间的关系是通过所谓的事件绑定来建立鼠标单击键盘输入控件的属性bind方法tkinker概述启动事件循环程序其它控件在进行布局后会先后显示并接收交互操作在Tk对象创建后图形界面就已经显示在用户屏幕上通过脚本文件解释执行,图形界面还没显示在屏幕上主动调用Tk对象的mainloop方法显示设计好的界面执行语句启动事件循环程序接收用户的交互操作tkinker概述【例】一个简单的示例程序导入tkinter主模块fromtkinterimport*第03行构造Tk对象第04行设置程序显示窗口标题栏的文本第05行设置了程序标题图片第06行采用pack方法对建立的标签文本进行布局第08行构造一个Label对象第07行定义了一个事件处理程序第09-10行增加一个Button类对象第11行

tkinker概述调用按钮pack方法布局第12行第13行该程序目的是让读者对tkinter基本编程步骤及相关概念有整体的宏观了解,可暂时不用关注具体命令细节启动事件循环tkinker概述01#-*-coding:utf-8-*-02#例12-1:hello.py03importtkinterastk04app=tk.Tk()05app.title("hello")06app.iconbitmap("python.ico")07label=tk.Label(app,text="欢迎开启GUI编程之旅!")【例】

tkinter的基本编程步骤实例tkinker概述08label.pack(padx=50,pady=5)09defchange_button_text():10

btn.configu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论