第四讲 GUI界面程序设计 教学设计-《Python 面向对象程序设计调试》

2025-03-11
| 7页
| 139人阅读
| 0人下载
精品

内容正文:

安徽省计算机类高考技能教学 GUI界面程序程序设计 目录 安徽省计算机类高考技能教学 1 一、教学目标 1 二、基本知识讲解 1 什么是GUI编程 1 布局管理器 2 pack( )布局 2 grid( )布局 2 place( )布局 3 Tkinter常用控件和属性 4 Tkinter主窗口与控件 4 控件通用属性 5 三、例题讲解 5 四、课堂小结 7 一、教学目标 【知识目标】 1.掌握使用布局管理器的使用。 2.掌握主窗口的创建及其属性。 【能力目标】 培养学生能实现简单的GUI界面 培养学生使用GUI进行简单的用户交互功能 【素养目标】 培养学生分析问题的布局,学会合理使用布局管理器来搭建简单GUI界面解决实际问题 二、基本知识讲解 什么是GUI编程 Tkinter(即 tk interface,简称“Tk”)本质上是对 Tcl/Tk 软件包Python接口的封装,它是Python官方推荐的 GUI(图形用户界面) 工具包,属于Python自带的标准库模块,只需安装好Python后,就可以直接使用它,而无须另行安装(Python内置的)。 作为一款 Python的GUI工具,Tkinter 拥有良好的跨平台性,支持 Windows、Linux、Mac 平台,它传承了 Python 语法简洁、代码易读的基本特点。 布局管理器 Tkinter 提供了三种常用的布局管理器,分别是 pack( )、grid( ) 以及 place( ): 方法 说明 特点 pack( ) 默认将控件自上而下居中布局。强调控件的先后顺序 灵活性较差 grid( ) 以行和列的形式(类似网格)对控件进行排列 较为灵活 place( ) 可以指定组件大小以及摆放位置 三个方法中最为灵活 pack( )布局 pack( ) 是一种较为简单的布局方法,在不使用任何参数的情况下,它会将控件以添加时的先后顺序,自上而下,一行一行的进行排列,并且默认居中显示。pack( )方法的常用参数如下所示: 属性 说明 anchor 组件在窗口中的对齐方式,有9个方位参数值,比如"n"/"w"/"s"/"e"/"ne",以及 "center" 等(这里的 e w s n分别代表,东西南北),如果是大写的EWSN不用双引号例如:anchor=E(其实就是在控件所在行的范围内的对齐方式) side 组件放置在窗口的哪个位置上,参数值 'top','bottom','left','right'。注意,单词小写时需要使用字符串格式,若为大写单词则不必使用字符串格式(不加引号) ipadx,ipady 表示控件内的文本内容和组件边框的距离(内边距)。 padx,pady 用于控制之间的上下、左右的距离(外边距)。其中的padx一般需要配合side使用才能生效。 grid( )布局 grid( ) 布局是一种基于网格式的布局管理方式,相当于把窗口看成由行和列组成的表格。当使用 grid 进行布局时,表格内的每个单元格都可以放置一个控件。从而实现对界面的布局管理。 属性 说明 row 控件位于表格中的第几行,默认从第0行开始 rowspan 控件所跨的行数(默认为1行),通过该参数可以合并多行单元格已实现控件居中的效果 column 控件位于表格中的第几列,默认从第0列开始 columnspan 控件所跨的列数(默认为1列),通过该参数可以合并多列单元格已实现控件居中的效果 ipadx,ipady 表示控件内的文本内容和组件边框的距离(内边距) padx,pady 用于控制之间的上下、左右的距离(外边距)。 sticky 该属性用来设置控件位于单元格哪个方位上,参数值和anchor相同。若不设置该参数则控件在单元格内居中。(配合rowspan和columnspan使用,同时使用rowspan和column可以解锁NE,SE,SW,NW的四个方向) 注意:在一个程序中不能同时使用pack( )和grid( )方法,这两个方法只能二选一,否则程序会运行错误。 当使用 grid 函数布局的时,其实就是为各个控件指定行号、列号的过程,我们不需要为每个单元格指定大小,因为 grid 会为每个单元格自动设置一个合适的尺寸。 place( )布局 与前两种布局方法相比,采用place( )方法进行布局管理要更加精细化,通过place( )布局管理器可以直接指定控件在窗体内的绝对位置,或者相对于其他控件定位的相对位置。 属性 说明 anchor 定义控件在窗体内的方位,参数值N/NE/E/SE/S/SW/W/NW 或 CENTER,默认值是 NW(左上角)anchor就是对象位置的参考点。 x、y x和y参数分别用于设置控件在主窗口或框架中水平方向和垂直方向布局的起始位置,它们均是以 px(像素)为单位。主窗口左上角为原点。 relx、rely 定义控件相对于根窗口在水平和垂直方向上的相对位置,取值范围在0.0~1.0 之间。 width、height 控件自身的宽度和高度(单位为像素) relwidth 、relheight 控件宽度和高度相对于根窗体高度和宽度的比例,取值也在 0.0~1.0 之间 注意:在一个父组件中 place( )方法可以与 grid( )方法混合使用,也可以和pack()布局使用。(place可以和pack混合用,place也可以和grid混合使用,就是grid和pack不能混合用) 通过上述描述我们知道,relx和rely参数指定的是控件相对于父组件的位置,而relwidth和relheight参数则是指定控件相对于父组件的尺寸大小。 Tkinter常用控件和属性 一个完整的GUI程序,其实是由许多小的控件(widgets)构成的,比如按钮、消息对话框、输入框、列表框、多选框等等。在学习 Tkinter GUI编程的过程中,不仅要学会如何摆放这些控件,还需要了解掌握各种控件的功能、属性,只有这样才能开发出一个设计优雅且功能完善的 GUI图行界面程序。 控件类型 控件名称 控件作用 Button 按钮 点击按钮时触发执行事件函数 Entry 文本输入框 用于接收单行文本输入 Label 标签控件 用于显示单行文本或者图片 Message 多行文本标签控件 用于显示多行不可编辑的文本,与 Label控件类似,增加了自动分行的功能 Listbox 列表框控件 以列表的形式显示文本 messagebox 消息框控件 用户交互的消息对话框 Radiobutton 单选框 单项选择按钮,只允许从多个选项中选择一项 CheckButton 复选框 多项选择按钮,可允许从多个选项中选择 Tkinter主窗口与控件 主窗口控件(window)是一切控件的基础,它好比是一台高速运转的机器,而其他控件则相当于这台机器上的部件,比如齿轮、链条、螺丝等等。主窗口是一切控件的基础,所有的控件的都需要通过主窗口来显示。 窗口常用属性 函数 说明 root.title("my title") 接受一个字符串参数,为窗口起一个标题 root.resizable() 是否允许用户拉伸主窗口大小,默认为可更改,当设置为 resizable(0,0)或者resizable(width=False,height=False)时不可更改 root.geometry() 设定主窗口的大小以及位置(初始显示位置),当参数值为 None 时表示获取窗口的大小和位置信息。 root.quit() 关闭当前窗口 root.destroy()/quit() 也是退出窗口 root.mainloop() 设置窗口主循环,使窗口循环显示(一直显示) root.config(background ="red") 设置窗口的背景色为红色,也可以接受16进制的颜色值 控件通用属性 属性名称 说明 bg 用来设置背景色 bd 控件的边框宽度,单位为像素,默认为 2 个像素 font 指定文本的样式,元组参数格式(字体,大小,样式) fg 字体颜色 width/height 控件的宽和高 justify 表示多行文本的对齐方式,参数值为 left、right、center relief 指定边框样式,默认值是 "flat",其他参数值有 "groove"、"raised"、"ridge"、"solid"或者"sunken",如果全是大写则不用双引号,例如relief=GROOVER state 该参数用来指定控件的状态,默认值为"normal"(正常状态),其他可选参数值有"disabled"(不可用状态) text 用来指定 Lable 显示的文本,注意文本内可以包含换行符 config 可以用来设置空间的属性 如 lb.config(text=st) 设置文本为st 三、例题讲解 1.使用pack布局实现下面的界面 from tkinter import * root=Tk() root.title("出租车结算") root.geometry("300x200") Label(root,text="请输入公里数:").pack() e=Entry(root) e.pack() lb=Label(root) lb.pack() Button(root,text="结算").pack() root.mainloop() 2.使用grid布局实现下面的界面 from tkinter import * root=Tk() root.title("判断三角形") root.geometry("300x200") Label(root,text="请输入第一条边:").grid(row=0,column=0) e=Entry(root) e.grid(row=0,column=1) Label(root,text="请输入第一条边:").grid(row=1,column=0) e=Entry(root) e.grid(row=1,column=1) Label(root,text="请输入第一条边:").grid(row=2,column=0) e=Entry(root) e.grid(row=2,column=1) lb=Label(root) lb.grid(row=3,column=1) Button(root,text="判断").grid(row=4,column=1) root.mainloop() 四、课堂小结 学习Tkinter图形化编程是上机实操的选考题。以下是一些建议,帮助更好地学习和掌握Tkinter: 1. 了解Tkinter的基本概念 2. 掌握Tkinter的基本语法(创建窗口的基本步骤) 3. 布局管理(主要是pack和grid布局) 4. 学习常用组件(考纲的八大控件) 5. 动手实践 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第四讲  GUI界面程序设计 教学设计-《Python 面向对象程序设计调试》
1
第四讲  GUI界面程序设计 教学设计-《Python 面向对象程序设计调试》
2
第四讲  GUI界面程序设计 教学设计-《Python 面向对象程序设计调试》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。