




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python 3 程序设计 主讲教师: 人民邮电出版社11 tkinter GUI编程人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列第11章 tkinter GUI编程 本章内容本章内容 tkinter编程概述 tkinter GUI的布局管理 tkinter的常用组件 tkinter的事件处理 tkinter GUI的应用开发图形用户界面(GUI)应用程序是Python的重要应用之一,标准库tkinter用来实现图形用户界面。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.1 tkinter编程概述编程概述tkinter模块是Python事
2、实上的GUI库,包含在Python的基本安装包中。使用tkinter模块编写的GUI程序是跨平台的,可在多种操作系统中运行。 第一个第一个tkinter GUI程序程序 组件和容器是GUI编程的两个基本概念。 组件是指标签、按钮、列表框等对象,需将其放在容器中显示。 容器是指可放置其他组件或容器的对象。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.1 tkinter编程概述编程概述 第一第一个个tkinter GUI程序程序 tkinter GUI编程步骤(1)导入tkinter模块。import tkinter 或 from tkinter import *(2
3、)创建主窗口对象,如果未创建主窗口对象,tkinter将以默认的顶层窗口作为主窗口。(3)创建标签、按钮、输入文本框等组件对象。(4)打包组件,将组件显示在其父容器中。pack()(5)启动事件循环,GUI窗口启动,等待响应用户操作。mainloop() 例11-1 带有标签和按钮的tkinter GUI程序。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.1 tkinter编程概述编程概述 设置窗口和组件的属性设置窗口和组件的属性 设置窗口属性常用的方法有title()、geometry()和config()方法。1. title()方法和geometry()方法
4、title()方法用于设置窗口的标题,geometry()用于方法设置窗口的大小。geometry()方法中的参数格式为“宽度x高度” 。例11-2 设置了标题和大小的窗口。2. config()方法config()方法用于设置组件文本、对齐方式、前景色、背景色、字体等属性。例11-3 使用config()方法配置组件属性。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.2 tkinter GUI的布局管理的布局管理 容器中组件的布局是很繁琐的,需要调整组件自身的大小,还要设计和其他组件的相对位置。 实现组件布局的方法被称为布局管理器或几何管理器。 tkinter使
5、用三种方法来实现布局:pack()、grid()、place(),。 Frame作为中间层的容器组件,可以分组管理组件,实现复杂的布局。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用pack()方法的方法的布局布局 pack()方法以块的方式布局组件。 pack()方法将组件显示在默认位置,是最简单、直接的用法。 pack()方法的参数: side表示组件在容器中的位置; expand表示组件可拉伸; fill取值为X、Y或BOTH,填充X或Y方向上的空间; anchor表示组件在窗口中位置。人民邮电出版社P
6、ython 3 程序设计程序设计程序设计新形态精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用grid()方法的布局方法的布局 使用grid()方法的布局被称为网格布局,它按照二维表格的形式,将容器划分为若干行和列,组件的位置由行列所在位置确定。 在同一容器中,只能使用pack()方法或grid()方法中的一种布局方式。 grid()方法的参数: row和column,组件所在的行和列的位置 rowspan和columnspan,组件从所在位置起跨的行数和跨的列数 sticky,组件所在位置的对齐方式 例11-6 使用grid()方法设置组件布局。人民邮电出版社Pytho
7、n 3 程序设计程序设计程序设计新形态精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用place()方法的布局方法的布局 比grid()和pack()布局更精确地控制组件在容器中的位置。 如果容器大小调整,可能会出现布局不适应的情况。 place()方法的参数 x和y,用绝对坐标指定组件的位置 height和width,指定组件的高度和宽度 relx和rely,按容器高度和宽度的比例来指定组件的位置 relheight和relwidth,按容器高度和宽度的比例来指定组件的高度和宽度 例11-7 使用place ()方法的布局。人民邮电出版社Python 3 程序设计程序设
8、计程序设计新形态精品系列11.2 tkinter GUI的布局管理的布局管理 使用框架的复杂布局使用框架的复杂布局 框架( Frame),容器组件,通常用于对组件进行分组 可以从而实现复杂的布局。 例11-8 用Frame实现的复杂布局。属性属性说明说明bd指定边框宽度relief指定边框样式,取值为FLAT(扁平,默 认 值 ) 、 R A I S E D ( 凸 起 ) 、 SUNKEN(凹陷)、RIDGE(脊状)、GROOVE(凹槽)和 SOLID(实线)width和和height设置宽度或高度,如果忽略,容器通 常 根 据 内 容 组 件 的 大 小 自 整Frame大小人民邮电出版社
9、Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 Label组件组件 创建标签的组件,主要用于显示不可修改的文本、图片或者图文混排内容。属性属性说明说明text设置标签显示的文本bg和和fg指定组件的背景色和前景色width和和height指定组件的宽度和高度padx和和pady组件内文本 左右和上下 的预留空白宽度)anchor设置文本在组件内部的位置justify设置文本对齐方式font设置字体例例11-9 测试标签的属性测试标签的属性。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 B
10、utton组件组件 创建按钮,用于响应用户的单击操作,即单击按钮时将执行指定的函数。 Button组件的command属性用于指定响应函数。 例11-10 单击Button按钮计算1100的累加值人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 Entry组件组件 输入组件,用于显示和输入简单的单行文本。 部分属性与Label组件相同。属性属性/方法方法说明说明state设置组件状态。validate设置执行validatecommand校验函数的时间validatecommand设置校验函数textvariable获取组件内容的变量g
11、et()返回组件中的全部字符delete( first,last=None)删除从 first开始到last之前的字符 Entry组件的常用属性和方法人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11tkinter的常用组件 Entry组件组件 控制变量控制变量。控制变量是和组件相关联的一种对象。 例如,控制变量与Entry组件关联时,控制变量的值随Entry组件的文本会关联变化;将控制变量与Radiobutton组件(单选按钮组)关联时,改变单选按钮选择时,控制变量的值随之改变;反之,改变控制变量的值,对应值的单选按钮被选中。 例11-11 输入数据并计算累加和。着重
12、体会控制变量的概念。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 Listbox组件组件 创建列表框,允许用户一次选择一个或多个列表项。 Listbox组件的部分属性组件的部分属性和方法和方法 Listvariable属性关联一个StringVar类型的控制变量,该变量关联列表框全部选项, Selectmode用于设置列表项选择模式, activate(index)方法用于选中index对应的列表项。 cursection()方法返回方法返回包含选中项包含选中项index的元组,无选中时返回的元组,无选中时返回空空元组。元组。 in
13、sert(index, relements)方法在方法在index位置插入一个或多个列表位置插入一个或多个列表项。项。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 Listbox组件组件 get( first,last=None),返回包含first,last范围内的列表项的文本元组。 Listbox组件的部分方法将列表项位置(index)作为参数。Listbox组件中第一个列表项的index值为0,最后一个列表项index可以使用常量tkinter.END表示。当前选中列表项的index值用常量tkinter.ACTIVE表示。
14、例例11-12 列表框操作示例。列表框操作示例。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列 11.3 tkinter的常用组件 其他组件其他组件 Radiobutton组件,用于创建单选按钮组。 Checkbutton组件,用于创建复选框,用来标识是否选定某个选项。 Text组件,用来显示和编辑多行文本。 Spinbox输入组件,用于创建在一组选项或一定范围的数字内滚动选择的组件。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.4 tkinter的事件处理的事件处理 图形用户界面经常需要用户对鼠标、键盘等操作做出反应,这就是事件处理事件处
15、理。 产生事件的鼠标、键盘等称作事件源,其操作称为事件事件。 对这些事件作出响应的函数,称为事件处理程序事件处理程序。 事件处理通常使用组件的command参数参数或组件的bind()方法方法来实现。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.4 tkinter的事件处理的事件处理 使用使用command参数实现事件处理参数实现事件处理 单击按钮时,将会触发Button组件的command参数指定的函数。实际上是主窗口负责监听发生的事件,单击按钮时将触发事件,然后调用指定的函数。 由command参数指定的函数也叫回调函数。 Radiobutton、Checkb
16、utton、Spinbox等组件,都支持使用command参数进行事件处理。 例11-17是一个窗体验证的示例,单击按钮对提交的数据进行验证,为了简化程序,用户名和密码保存在一个字典中。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.4 tkinter的事件处理的事件处理 使用组件的使用组件的bind()方法实现事件处理方法实现事件处理 使用bind()方法来为组件事件绑定处理函数可以实现事件处理。widget.bind(event,handler)widget是事件源事件源,即产生事件的组件;event是事件事件或事件名称;hander是事件处理程序。 常见事件名
17、称如下。单击鼠标左键单击鼠标左键1/Button-1/ButtonPress-1松开鼠标左键松开鼠标左键ButtonRelease-1单击鼠标右键单击鼠标右键3/Button-3双击鼠标左键双击鼠标左键Double-1/Double-Button-1双击鼠标右键双击鼠标右键Double-3拖动鼠标移动拖动鼠标移动B1-Motion鼠标移动到区域鼠标移动到区域Enter例11-18 bind()方法实现 的事件处理人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列11.5 tkinger GUI的应用的应用设计了一个包含Label组件、Entry组件、Combobox组件、R
18、adiobutton组件、Checkbutton组件的GUI界面。 Combobox组件来自于tkinter.ttk模块。 程序运行后,输入考生姓名,选择考生省份、地区,并选择考生类别和专业等信息后,单击“增加”按钮,将学生信息添加到列表框中; 选中列表框中的信息后,单击“删除”按钮,将删除列表框中的信息。人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列人民邮电出版社Python 3 程序设计程序设计程序设计新形态精品系列小结 组件组件和容器的概念,设置窗口和组件的属性的和容器的概念,设置窗口和组件的属性的title()方法、方法、geometry()方法和方法和config()方法。方法。 tkint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省成都电子信息学校高考班、单招班2024-2025学年高一上学期期中考试语文试卷(图片版 无答案)
- 《分子热运动》热和能课件
- 贴片机培训教材
- 2025年度三月份特许经营加盟商广告投放费用分担协议修订版
- DB11 T 384.10-2009 图像信息管理系统技术规范 第10部分 图像采集点设置要求
- 营改增金融行业政策解读
- 贵州新中式高端别墅大区景观概念设计项目
- 电网安规安全培训课件
- 2025三月份影视拍摄场地特殊时段租赁补充协议
- 李宁体育园宣传策划案
- 法学概论(第七版) 课件全套 谷春德 第1-7章 我国社会主义法的基本理论 - 国际法
- 《燃煤火力发电企业设备检修导则》
- 2024年云南省昆明市中考一模英语试题(含答案)
- 2024年上海杨浦区社区工作者招聘笔试冲刺题(带答案解析)
- 家长会培养孩子正确使用电子设备的习惯
- 沟通中的共情和换位思考
- 提高幼儿学习能力
- 人教版美术六年级下册全册教学设计教案表格式
- 胖东来服务管理手册
- 课间文明主题班会通用课件
- 语文新课标背景下单元整体教学:六下第4单元大单元设计
评论
0/150
提交评论