版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计与应用第12章tkinterGUI编程12.1tkinter编程基础12.2
tkinter组件
本章小结◎掌握tkinter编程基础。◎熟练使用tkinter基本组件。◎掌握布局管理器的使用。◎掌握事件处理方式,熟练使用菜单与对话框。本章将介绍使用tkinter模块来创建Python的GUI应用程序的方法。tkinter模块是Python内置的标准GUI(GraphicalUserInterface,图形用户界面)库,其使GUI编程变得简洁和简单。GUI是图形化用户界面,也称图形用户接口,最典型的就是微软的Windows界面。GUI应用程序可以使用户通过菜单、窗口按钮等执行各种操作。学习目标:tkinter编程基础tkinter模块是Python内置的标准GUI库,它使GUI编程变得简洁和简单。tkinter模块是TkGUI库的接口,它已成为Python业界开发GUI的约定标准。采用tkinter模块编写的PythonGUI程序是跨平台的,可运行在Windows、UNIX、Linux以及MacOsX等多种操作系统之中,且与系统的布局和外观风格保持一致。使用Python对tkinter进行扩展,或直接使用现有的扩展包,如Pmw(界面组件库)、Tix(界面组件库,已成为Python标准库)、ttk(Tk界面主题组件库,已成为Python标准库)、PIL(图形处理库)、IDLE(基于tkinter实现的Python可视化集成打开环境)。12.1tkinter编程基础12.1.1第一个tkinterGUI程序【例12.1】第一个tkinterGUI程序示例。importtkinter#导入tkinter模块root=tkinter.Tk()#创建主窗口w=tkinter.Label(root,text='你好,Python!')#创建标签类的实例对象w.pack()#打包标签root.mainloop()#开始事件循环tkinterGUI程序的基本结构通常包含下面的几个部分。导入tkinter模块。创建主窗口:所有组件默认情况下都以主窗口作为容器。创建组件实例:调用组件类创建组件实例时,第一个参数指明了主窗口。打包组件:打包的组件可以显示在窗口中,否则不会显示。开始事件循环:开始事件循环后,窗口等待响应用户操作。mainloop()不是必需的。在交互模式下运行GUI程序时,如果有这个函数,程序运行结束后,才会返回提示符;如果没有,程序启动后,交互模式下立即返回提示符,但不会影响GUI程序窗口。GUI程序文件扩展名是.py或.pyw。在Windows中双击程序文件运行时,.py文件在打开GUI窗口的同时,会显示系统命令提示符窗口,而.pyw文件运行时则不显示该命令提示符窗口。12.1.2组件打包调用pack()方法打包组件时,可以通过参数设置组件位置以及是否可以拉伸等。设置组件位置组件拉伸12.1.3添加按钮和事件处理函数按钮组件的command参数指定了单击按钮时,将会执行的函数名称。在程序执行过程中,主窗口监听了窗口中发生的事件。用户单击按钮时,发生按钮的单击事件,然后调用指定的函数。command参数指定的函数可称为事件处理函数,或者叫回调函数。其它组件如单选按钮、复选框、标尺、滚动条等,都支持command参数。还可以使用bind()方法来为组件的事件绑定处理函数。常用事件名称如下:Button-1:单击鼠标左键。Button-3:单击鼠标右键。Double-1:双击鼠标左键。B1-Motion:按下鼠标左键拖动。Return:按下【Enter】键。KeyPress:按下键盘字符或其它键。Up:按下【↑】键。12.1.3添加按钮和事件处理函数发生事件时,处理函数会接收到一个事件对象,通常用event变量表示,事件对象封装了事件的细节。例如,B1-Motion事件对象的属性x和y表示拖动时鼠标的坐标,KeyPress事件对象的char属性表示按下键盘字符键对应的字符。12.1.4使用布局布局即组件在容器中的结构安排和组成方式。Python的tkinter模块提供了常用的三种布局方式。1.Packer布局2.Grid布局3.Place布局12.1.5使用框架框架(Frame)是一个容器,通常用于对组件进行分组。框架常用选项如下:bd:指定边框宽度。relief:指定边框样式,可用RAISED(凸起)、SUNKEN(凹陷)、FLAT(扁平,默认值)、RIDGE(脊状)、GROOVE(凹槽)和SOLID(实线)。width、height:设置宽度和高度,通常被忽略。容器通常根据内容组件的大小自动调整自身大小。12.2tkinter组件12.2.1组件通用属性设置tkinter模块中的组件可使用一组通用的属性设置来控制组件的外观和行为。通常,调用组件的config()方法来设置属性,在config()方法中使用与属性同名的参数来设置属性值。1.尺寸设置在设置组件和尺寸的属性时,若设置为一个整数值,则默认单位为像素,还可以使用厘米c、英寸i,点p等。带单位时需要使用字符串表示尺寸。例如:label1.config(bd=2)#设置边框宽度为2个像素label1.config(bd=’0.3c‘)#设置边框宽度为0.2厘米12.2tkinter组件12.2.1组件通用属性设置
2.颜色设置设置颜色相关属性时,属性值为一个字符串,字符串为标准颜色名称或以符号“#”开头的RGB颜色值。标准颜色名称可使用white、black、red、green、blue、cyan、yellow等。使用“#”开头的RGB颜色值时,有3种格式:
#rgb:每种颜色用1位十六进制数表示。
#rrggbb:每种颜色用2位十六进制数表示。
#rrrgggbbb:每种颜色用3位十六进制数表示。3.字体设置组件的font属性用于设置字体名称、字体大小和字体特征等,如语句:label1.config(font=(‘隶书’,20,’bolditalicunderlineoverstrike’))其中,font属性通常为一个三元组,基本格式为“(family,size,special)“。family为表示字体名称的字符串,size为表示字体大小的整数,special为表示字体特征的字符串。size为正整数时,字体大小单位为点;为负整数时,为像素。special字符串中使用关键字表示字体特征:normal(正常)、bold(粗体)、italic(斜体)、underline(加下划线)或overstrike(加删除线)。12.2tkinter组件12.2.1组件通用属性设置
4.显示位图bitmap属性用于设置在组件中显示的预设值的位图,预设值的位图名称有error、gray50、gray25等。下面的代码使用标签显示这些预设值的位图。5.显示图片在Windows系统中,调用PhotoImage()类来引用文件中的图片,然后在组件中设置为image属性值,将图片显示在组件中。PhotoImage()类支持.gif、.png等格式的图片文件。6.使用控制变量控制变量是一种特殊对象,它和组件关联在一起。例如,将控制变量与一组单选按钮关联时,改变单选按钮选择时,控制变量的值随之改变;反之,改变控制变量的值,对应值的单选按钮被选中。同样,控制变量与输入组件关联时,控制变量的值和输入组件中的文本也会关联变化。tkinter模块提供了布尔型、双精度型、整数和字符串4种控制变量,创建方法如下:var=BooleanVar()#布尔型控制变量,默认值0var=StringVar()#字符串控制变量,默认值空字符串var=IntVar()#整数控制变量,默认值0var=DoubleVar()#双精度控制变量,默认值0.012.2.2输入组件Entry输入组件用于显示和输入简单的单行文本,tkinter.Entry类用于创建输入组件。1.使用简单的输入组件2.输入组件校验12.2.3列表框组件Listbox列表框用于显示多个列表框,每项为一个字符串。列表框允许用户一次选择一个或多个列表项。tkinter.Listbox类用于创建列表框。常用的属性和方法介绍如下:listvariable:关联一个StringVar类型的控制变量,该变量关联列表框全部选项。通过set()和get()方法设置和访问列表框列表项。selectmode:设置选择模式,参数可设置为BROWSE(默认值,只能选中一项,可拖动)、SINGLE(只能选中一项,不能拖动)、MULTIPLE(通过鼠标单击选中多个列表项)、EXTENDED(通过鼠标拖动选中多个列表项)。
列表框组件部分方法以列表项位置(index)为参数。列表框中第一个列表项index为0,最后一个列表项index用常量tkinter.END表示。12.2.3列表框组件Listbox列表框组件常用方法如下:activate(index):选中index对应列表项。curselection():返回包含选中项index的元组,无选中项时返回空元组。delete(first,last=None):删除[first,last]范围内的列表项,省略last参数时只删除first对应的项。get(first,last=None):返回包含[first,last]范围内的列表项的文本元组,省略的last参数时只返回first对应的项的文本。size():返回列表项个数。12.2.4复选框组件Checkbutton复选框组件通常用于显示两种状态:选中和未选,tkinter.Checkbutton类用于创建复选框。复选框的部分属性和标签相同,其它常用属性如下:command:设置改变复选框状态时调用的函数。indicatoron:设置复选框样式,默认值为1。设置为0时,复选框变成按钮样式,选中时按钮凹陷。variable:绑定一个IntVar变量,选中复选框时,变量值为1,否则为0。复选框常用方法如下:deselect():取消选择。select():选中复选框。12.2.5标签框架LabelFrame标签框架和框架类似,都是容器,不同之处在于标签框架可以显示一个标签。标签框架显示的标签可以是文本字符串或其它的组件。tkinter.LabelFrame类用于创建标签框架。标签框架的常用属性如下:labelanchor:设置标签位置,默认为NW。text:设置标签框架在标签中显示的文本。labelwidget:设置标签框架在标签中显示的组件。如果设置了text,则text被忽略。12.2.6文本框组件TextText组件类似于一个富文本编辑器,它具有以下主要特点:处理多行文本。在文本中插入图片,图片视为1个字符。用“行.列“格式表示组件中字符的位置(index)。在组件的文本中定义书签,利用书签在文本中快速定位。定义文本块,不同的文本块可定义不同的字体、前景颜色、背景颜色或其它选项并可为文本块绑定事件。嵌入其它的tkinter组件。12.2.6文本框组件TextText组件的常用属性如下:maxundo:设置保存的“撤销”操作的最大数目。spacing1:设置段前间距,默认值0。spacing2:设置行间距,默认值0。spacing3:设置段后间距,默认值0。undo:设置是否使用“撤销”机制,设置为True表示启用,False表示不启用。wrap:设置文字回卷方式,默认值CHAR,按字符回卷,NONE表示不回卷。xscrollcommand:关联一个水平滚动条。yscrollcommand:关联一个垂直滚动条。12.2.7顶层窗口组件Toplevel默认情况下,一个tkinterGUI程序总是有一个默认的主窗口,也称根窗口或root窗口。root窗口通过显示调用tkinter.Tk()来创建。如果没有显示调用tkinter.Tk(),GUI程序也会隐式调用。顶层窗口组件Toplevel用于创建一个顶层窗口。顶层窗口默认外观和root窗口相同,可独立地进行操作。12.2.8菜单组件Menu菜单组件Menu用于创建一个菜单,该菜单作为窗口的菜单栏或弹出菜单。可以为Menu添加子菜单,子菜单中的菜单项可以是文本、复选框或单选按钮。子菜单的菜单项可包含一个子菜单。tkinter.Menu类用于创建菜单,菜单的常用属性和方法如下:tearoff属性:默认情况下,一个Menu对象包含的子菜单的第一项为一条虚线,单击虚线,使子菜单变成一个独立的窗口。如果tearoff设置为0,则不显示虚线。add_command()方法:添加一个菜单项。用label、bitmap或image参数指定显示文本、位图或图片,command参数指定选择菜单项时执行的回调函数。add_cascade()方法:将另一个Menu对象添加为当前Menu对象的子菜单。仍可用label、bitmap或image参数指定菜单项显示的文本、位图或图片,menu参数设置作为子菜单的Menu对象。
add_radiobutton()方法:将一个单选按钮添加为菜单项。
add_checkbutton()方法:将一个复选框添加为菜单项。add_separator()方法:添加一条横线作为菜单分隔符。post()方法:在指定位置弹出Menu对象的子菜单。12.2.9对话框tkinter的子模块messagebox、filedialog和colorchooser提供了各种通用对话框。
消息对话框messagebox模块定义了显示各种消息对话框的函数:showinfo(title,message,options):显示普通信息对话框。showwarning(title,message,options):显示警告信息。showerror(title,message,options):显示错误信息对话框。askquestion(title,message,options):显示询问问题对话框。askokcancel(title,message,options):显示询问确认取消对话框。askyesno(title,message,options):显示询问是否对话框。askyesnocancel(title,message,options):显示询问是否取消对话框。askretrycancel(title,message,options):显示询问重试取消对话框。询问对话框返回单击对话框中按钮对应的值。各个函数的参数均可省略,title参数设置对话框标题,message参数设置对话框内部显示的提示信息,options为一个或多个附加选项。各个showXXX()方法返回字符串“ok“,askquestion()方法返回“yes”或“no”,askokcancel()返回True或False,askyesno()返回True或False,askyesnocancel()方法返回True、False或None,askret
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8.1.2免疫与计划免疫教学设计-2023-2024学年人教版八年级生物下册
- 2025-2026学年酒拳出拳教学设计
- 2026北师大五上探索活动因数教案
- 2026四上数学除法解决问题教案
- 某冶金厂质量条例
- 家电企业售后服务制度
- 2025-2026学年书法硬笔教案
- 纺织厂生产工艺制度
- 某造船厂船体涂装制度
- 架空输电线路微风振动综合在线监测方案
- 职业院校数字化转型建设方案
- 国防科技工业固定资产投资项目工程建设其他费用和预备费编制规定(科工法〔2005〕496号)
- 2026南方凯能(广东)电力集团校园招聘考试备考试题及答案解析
- 塑胶配色外包合同
- 2025年一级建造师民航机场工程实务真题及答案解析
- 2026中国期货市场跨品种套利机会识别与交易策略报告
- 国家免疫规划政策宣传课件
- 2026年华为光技术笔考前冲刺练习含答案详解(考试直接用)
- 部编人教版小学四年级下册道德与法治全册教案
- 2025年河北省石家庄市法官逐级遴选考试题及答案
- 幼教考试推理题目及答案
评论
0/150
提交评论