Python-3基础教程-第8章tkinter-GUI编程课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python-3基础教程-第8章tkinter-GUI编程课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 基础教程 tkinter GUI 编程 课件
- 资源描述:
-
1、Python 3基础教程出版社或系部名称主讲:授课教师 姓名8.1 tkinter8.1 tkinter编程基础编程基础 在在PythonPython中编写中编写GUIGUI程序并不复杂,本节将学习使用程序并不复杂,本节将学习使用tkintertkinter编写编写GUIGUI程序程序的基本步骤和方法。的基本步骤和方法。本节主要讲述:本节主要讲述:第一个第一个tkinterGUItkinterGUI程序程序 组件打包组件打包 添加按钮和事件处理函数添加按钮和事件处理函数 PackerPacker布局布局 GridGrid布局布局 PlacePlace布局布局 使用框架使用框架8.1.1 8.1
2、.1 第一个第一个tkinterGUItkinterGUI程序程序1.tkinter GUI1.tkinter GUI程序的基本结构程序的基本结构 tkinter GUItkinter GUI程序的基本结构通常包含下面几个部分:程序的基本结构通常包含下面几个部分:导入导入tkintertkinter模块模块 创建主窗口:所有组件默认情况下都以主窗口作为容器。创建主窗口:所有组件默认情况下都以主窗口作为容器。创建组件实例:调用组件类创建组件实例时,第一个参数指明了主创建组件实例:调用组件类创建组件实例时,第一个参数指明了主窗口。窗口。打包组件:打包的组件可以显示在窗口中,否则不会显示。打包组件:
3、打包的组件可以显示在窗口中,否则不会显示。开始事件循环:开始事件循环后,窗口等待响应用户操作。开始事件循环:开始事件循环后,窗口等待响应用户操作。mainloop()mainloop()不是必须的。在交互模式下运行不是必须的。在交互模式下运行GUIGUI程序时,如程序时,如果有果有mainloop()mainloop(),程序运行结束后,才会返回提示符。如,程序运行结束后,才会返回提示符。如果没有果没有mainloop()mainloop(),程序启动后,交互模式立即返回提示,程序启动后,交互模式立即返回提示符,但不会影响符,但不会影响GUIGUI程序窗口。程序窗口。2.py2.py还是还是.
4、pyw?.pyw?GUIGUI程序文件扩展名可以是程序文件扩展名可以是.py.py或或.pyw.pyw。在在WindowsWindows中双击程序文件运行时,中双击程序文件运行时,.py.py文件文件在打开在打开GUIGUI窗口的同时,会显示系统命令提窗口的同时,会显示系统命令提示符窗口。示符窗口。.pyw.pyw文件运行时则不显示系统命令提示符窗文件运行时则不显示系统命令提示符窗口。口。3.3.需要创建主窗口吗?需要创建主窗口吗?窗口和框架都可作为组件的容器,容器也可嵌套容器。主窗口和框架都可作为组件的容器,容器也可嵌套容器。主窗口只有一个,它是其他组件和容器的容器。窗口只有一个,它是其他组
5、件和容器的容器。在在GUIGUI程序中,并不需要显示地创建主窗口。程序中,并不需要显示地创建主窗口。4.4.导入模块还是导入类导入模块还是导入类 在导入模块时,访问模块中的类需要使用在导入模块时,访问模块中的类需要使用“tkinter.tkinter.”作作为限定词。为了方便和减少代码编写,可以有选择的导入为限定词。为了方便和减少代码编写,可以有选择的导入模块中需要的类,然后在代码中直接使用类。模块中需要的类,然后在代码中直接使用类。5.5.最简化的程序最简化的程序6.6.配置窗口和组件属性配置窗口和组件属性 默认情况下,窗口标题为默认情况下,窗口标题为tktk,可调用窗口对象的,可调用窗口对
6、象的title()title()方方法来设置标题。法来设置标题。组件的属性和属性值则以字典映射的形式来访问。组件的属性和属性值则以字典映射的形式来访问。8.1.2 8.1.2 组件打包组件打包1.1.设置组件位置设置组件位置 在在pack()pack()方法中可使用方法中可使用sideside参数设置组件位参数设置组件位置,参数值可使用下面的常量:置,参数值可使用下面的常量:TOPTOP:窗口剩余空间最上方水平居中;:窗口剩余空间最上方水平居中;BOTTOMBOTTOM:窗口剩余空间最下方水平居中;:窗口剩余空间最下方水平居中;LEFTLEFT:窗口剩余空间最左侧垂直居中;:窗口剩余空间最左侧
7、垂直居中;RIGHTRIGHT:窗口剩余空间最右侧垂直居中。:窗口剩余空间最右侧垂直居中。2.2.组件拉伸组件拉伸 在在pack()pack()方法中,若方法中,若expandexpand参数设置为参数设置为YESYES,表示组件可拉伸,此时,表示组件可拉伸,此时sideside参数被忽略。参数被忽略。若若expandexpand参数设置为参数设置为YESYES时,没有设置时,没有设置fillfill参数,则组件位于默认位置(参数,则组件位于默认位置(TOPTOP)。)。fillfill参数在参数在expandexpand参数设置为参数设置为YESYES时才有效时才有效,可设置为下面的常量:,
8、可设置为下面的常量:X X:水平拉伸:水平拉伸 Y Y:垂直拉伸:垂直拉伸 BOTHBOTH:水平垂直都拉伸:水平垂直都拉伸8.1.38.1.3添加按钮和事件处理函数添加按钮和事件处理函数 还可以使用还可以使用bind()bind()方法来为组件的事件绑定方法来为组件的事件绑定处理函数。常用事件名称如下。处理函数。常用事件名称如下。Button-1Button-1:单击鼠标左键:单击鼠标左键 Button-3Button-3:单击鼠标右键:单击鼠标右键 Double-1Double-1:双击鼠标左键:双击鼠标左键 B1-MotionB1-Motion:按下鼠标左键拖动:按下鼠标左键拖动 Ret
9、urnReturn:按下【:按下【EnterEnter】键】键 KeyPressKeyPress:按下键盘字符或其他键:按下键盘字符或其他键 UpUp:按下【:按下【】键】键8.1.4 Packer8.1.4 Packer布局布局 在调用在调用pack()pack()方法打包组件时,组件在容器(窗口和框架方法打包组件时,组件在容器(窗口和框架是典型的容器)中的布局方式可称为是典型的容器)中的布局方式可称为PackerPacker布局。布局。PackerPacker布局是布局是TkTk的一种几何管理器,它通过相对位置控制组件在的一种几何管理器,它通过相对位置控制组件在容器中的位置。因为组件的位置
10、是相对的,当容器大小发容器中的位置。因为组件的位置是相对的,当容器大小发生变化时(例如调整窗口大小),组件会跟随容器自动调生变化时(例如调整窗口大小),组件会跟随容器自动调整位置。整位置。组件在创建后,若没有指定布局管理器,组件是不会显示组件在创建后,若没有指定布局管理器,组件是不会显示在容器中的。调用在容器中的。调用pack()pack()方法意味着为组件指定方法意味着为组件指定PackerPacker布布局管理器,此时组件才会在容器中显示。局管理器,此时组件才会在容器中显示。组件总是按打包的先后顺序出现在容器中,当容器尺寸变组件总是按打包的先后顺序出现在容器中,当容器尺寸变小时(如缩放窗口
11、),后打包的组件总是先看不到。小时(如缩放窗口),后打包的组件总是先看不到。组件的位置通常由组件的位置通常由sideside或或anchoranchor参数决定。打包组件时,参数决定。打包组件时,后打包的组件只能在当前剩余空间内确定其位置。后打包的组件只能在当前剩余空间内确定其位置。anchoranchor参数根据指南针方位来分配组件在容器中的位置,参数根据指南针方位来分配组件在容器中的位置,参数值可使用下面的常量:参数值可使用下面的常量:其他与其他与pack()pack()方法有关的常用参数如下。方法有关的常用参数如下。expandexpand:设置组件是否可以拉伸。默认不可拉伸,设置:设置
12、组件是否可以拉伸。默认不可拉伸,设置为常量为常量YESYES时可拉伸。时可拉伸。fillfill:expandexpand设置为设置为YESYES时有效,可设置为时有效,可设置为X X(水平方向(水平方向拉伸)、拉伸)、Y Y(垂直方向拉伸)或(垂直方向拉伸)或BOTHBOTH(水平垂直方向都(水平垂直方向都拉伸)。拉伸)。ipadxipadx或或ipadyipady:组件内部左右或上下边框预留空白宽度:组件内部左右或上下边框预留空白宽度。padxpadx或或padypady:组件外部左右或上下边框预留空白宽度。:组件外部左右或上下边框预留空白宽度。8.1.5 Grid8.1.5 Grid布局
13、布局 采用采用pack()pack()方法打包组件时,组件所在容器采用方法打包组件时,组件所在容器采用PackerPacker布布局来组织组件。另一种布局方式是局来组织组件。另一种布局方式是GridGrid布局。调用组件的布局。调用组件的grid()grid()方法,则表示组件所在的容器采用方法,则表示组件所在的容器采用GridGrid布局来组织布局来组织组件。注意:在同一容器中,只能使用一种布局方式。组件。注意:在同一容器中,只能使用一种布局方式。GridGrid布局可称为网格布局,它按照二维表格的形式,将容布局可称为网格布局,它按照二维表格的形式,将容器划分为若干行和若干列,行列所在位置为
14、一个单元格,器划分为若干行和若干列,行列所在位置为一个单元格,类似与类似与ExcelExcel表格。表格。在在grid()grid()方法中,用参数方法中,用参数rowrow设置组件所在的行,设置组件所在的行,columncolumn参参数设置组件所在的列。行列默认开始值为数设置组件所在的列。行列默认开始值为0 0,依次递增。行,依次递增。行和列的序号的大小表示了相对位置,数字越小表示位置越和列的序号的大小表示了相对位置,数字越小表示位置越靠前。靠前。grid()grid()方法通常用的其他参数如下。方法通常用的其他参数如下。rowspanrowspan:组件占用的行数。:组件占用的行数。co
15、lumnspancolumnspan:组件占用的列数。:组件占用的列数。stickysticky:组件在单元格内的对齐方式,可用常量为:组件在单元格内的对齐方式,可用常量为:N N、S S、W W、E E、NWNW、SWSW、NENE、SESE和和CENTERCENTER,与,与pack()pack()方法方法的的anchoranchor参数值一致。参数值一致。ipadxipadx或或ipadyipady:组件内部左右或上下边框预留空白宽度:组件内部左右或上下边框预留空白宽度。padxpadx或或padypady:组件外部左右或上下边框预留空白宽度。:组件外部左右或上下边框预留空白宽度。8.1
16、.6 Place8.1.6 Place布局布局 PlacePlace布局可以比布局可以比GridGrid和和PackerPacker布局更精确布局更精确控制组件在容器中的位置。控制组件在容器中的位置。在调用组件的在调用组件的place()place()方法时,使用方法时,使用PlacePlace布布局。局。PlacePlace布局可以布局可以GridGrid或者或者PackerPacker布局同时使布局同时使用。用。place()place()方法常用参数如下。方法常用参数如下。anchoranchor:指定组件在容器中的位置,默认为左上角(:指定组件在容器中的位置,默认为左上角(NWNW),
17、可使用),可使用N N、S S、W W、E E、NWNW、SWSW、NENE、SESE和和CENTERCENTER等常量。等常量。bordermodebordermode:指定在计算位置时,是否包含容器边界宽度,默认为:指定在计算位置时,是否包含容器边界宽度,默认为INSIDEINSIDE(要计算容器边界),(要计算容器边界),OUTSIDEOUTSIDE表示不计算容器边界。表示不计算容器边界。heightheight、widthwidth:指定组件的高度和宽度,默认单位为像素。:指定组件的高度和宽度,默认单位为像素。relheightrelheight、relwidthrelwidth:按容
18、器高度和宽度的比例来指定组件的高:按容器高度和宽度的比例来指定组件的高度和宽度,取值范围为度和宽度,取值范围为0.01.00.01.0。x x、y y:用绝对坐标指定组件的位置,坐标默认单位为像素。:用绝对坐标指定组件的位置,坐标默认单位为像素。relxrelx、rely:rely:按容器高度和宽度的比例来指定组件的位置,取值范按容器高度和宽度的比例来指定组件的位置,取值范围为围为0.01.00.01.0。8.1.7 8.1.7 使用框架使用框架 框架(框架(FrameFrame)是一个容器,通常用于对组)是一个容器,通常用于对组件进行分组。件进行分组。框架常用选项如下。框架常用选项如下。bd
19、bd:指定边框宽度。:指定边框宽度。reliefrelief:指定边框样式,可用:指定边框样式,可用RAISEDRAISED(凸起)、(凸起)、SUNKENSUNKEN(凹陷)、(凹陷)、FLATFLAT(扁平,默认值)、(扁平,默认值)、RIDGERIDGE(脊状)、(脊状)、GROOVEGROOVE(凹槽)和(凹槽)和SOLIDSOLID(实线)。(实线)。widthwidth、heightheight:设置宽度和高度,通常被忽略。容器:设置宽度和高度,通常被忽略。容器通常根据内容组件的大小自动调整自身大小。通常根据内容组件的大小自动调整自身大小。8.2 tkinter8.2 tkinte
20、r组件组件 在前面的内容中,使用了标签、按钮和框架等组件,本节介绍其他一些在前面的内容中,使用了标签、按钮和框架等组件,本节介绍其他一些常用组件。常用组件。本节主要讲述:本节主要讲述:组件通用属性设置组件通用属性设置-标签组件标签组件LabelLabel 按钮组件按钮组件ButtonButton-输入组件输入组件EntryEntry 列表框组件列表框组件ListboxListbox-复选框组件复选框组件CheckbuttonCheckbutton 单选按钮组件单选按钮组件RadiobuttonRadiobutton-旋转框组件旋转框组件SpinboxSpinbox 滚动条组件滚动条组件Scro
21、llbarScrollbar-标签框架标签框架LabelFrameLabelFrame 文本框组件文本框组件TextText-画布组件画布组件CanvasCanvas 顶层窗口组件顶层窗口组件ToplevelToplevel-菜单组件菜单组件MenuMenu8.2.1 8.2.1 组件通用属性设置组件通用属性设置 tkintertkinter模块中的组件可使用一组通用的属模块中的组件可使用一组通用的属性设置来控制组件的外观和行为。性设置来控制组件的外观和行为。通常,调用组件的通常,调用组件的config()config()方法来设置属性方法来设置属性,在,在config()config()方法
22、中使用与属性同名的参数方法中使用与属性同名的参数来设置属性值。来设置属性值。当然,在调用组件类创建组件的实例对象时当然,在调用组件类创建组件的实例对象时,也可通过参数设置对应的属性。,也可通过参数设置对应的属性。1.1.尺寸相关设置尺寸相关设置 在设置组件和尺寸有关的属性(如边框宽度在设置组件和尺寸有关的属性(如边框宽度bdbd、容器的宽、容器的宽度度widthwidth或高度或高度heightheight等)时,若设置为一个整数值,则默等)时,若设置为一个整数值,则默认单位为像素。认单位为像素。尺寸单位可使用:尺寸单位可使用:c c(里面)、(里面)、m m(微米)、(微米)、i i(英寸)
23、、(英寸)、p p(点,(点,1 1点约点约7272分之一英寸)。带单位时,需使用字符串表分之一英寸)。带单位时,需使用字符串表示尺寸。示尺寸。2.2.颜色相关设置颜色相关设置 设置颜色相关的属性时,如背景色、前景色等,属性值为设置颜色相关的属性时,如背景色、前景色等,属性值为一个字符串,字符串中为标准颜色名称或以符号一个字符串,字符串中为标准颜色名称或以符号“#”开头开头的的RGBRGB颜色值。颜色值。标准颜色名称可使用标准颜色名称可使用whitewhite、blackblack、redred、greengreen、blueblue、cyancyan、yellowyellow、magenta
24、magenta等。等。使用使用“#”开头的开头的RGBRGB颜色值时,可使用下面颜色值时,可使用下面3 3种格式:种格式:#rgb#rgb:每种颜色用:每种颜色用1 1位位1616进制数表示。进制数表示。#rrggbb#rrggbb:每种颜色用:每种颜色用2 2位位1616进制数表示。进制数表示。#rrrgggbbb#rrrgggbbb:每种颜色用:每种颜色用3 3位位1616进制数表示。进制数表示。3.3.字体相关设置字体相关设置 组件的组件的fontfont属性用于设置字体名称、字体大小和字体特征属性用于设置字体名称、字体大小和字体特征等。等。fontfont属性通常为一个三元组,基本格式
25、为属性通常为一个三元组,基本格式为“(family,size,special)(family,size,special)”。familyfamily为表示字体名称的字符串为表示字体名称的字符串,sizesize为表示字体大小的为表示字体大小的整数整数,sizesize为正整数时,字体大小单位为点;为正整数时,字体大小单位为点;sizesize为正整为正整数时,字体大小单位为像素。数时,字体大小单位为像素。specialspecial为表示字体特征的字符串,可使用关键字表示字体为表示字体特征的字符串,可使用关键字表示字体特征:特征:normalnormal(正常)、(正常)、boldbold(粗
展开阅读全文