《第8章图形用户界面设计.pptx》由会员分享,可在线阅读,更多相关《第8章图形用户界面设计.pptx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C O N T E N T S目 录8.1 GUI编程步骤018.2 tkinter控件应用028.3 对话框038.4 事件处理048.1 GUI编程步骤8.1.1 创建主窗口导入tkinter模块:from tkinter import*通过调用Tk类的无参数构造函数Tk()来创建主窗口:窗口对象名=Tk()主窗口对象拥有一系列属性和方法。默认情况下,主窗口的高度和宽度都是200像素,标题文字为“tk”,窗口背景颜色呈浅灰色。通过调用tkinter.Tk实例的keys()方法可以获取主窗口对象所有资源名称的列表。设置主窗口的相关属性:窗口对象名资源名称=值通过调用主窗口对象的mainloo
2、p()方法使应用程序便进入主事件循环过程:窗口对象名.mainloop()8.1.2 添加控件要在主窗口中添加某种tkinter控件,首先要通过调用相应控件类的构造方法来创建控件实例,然后对该控件实例调用某种布局方法,即在创建主窗口实例与进入主窗口主循环事件之间添加以下代码:控件实例名=控件类名(父容器,属性1=值1,属性2=值2,.)控件实例名.布局方法()其中控件类名是由tkinter模块提供的。tkinter控件有3种布局方法,即pack()、grid()和place()。8.1.3 设置控件的属性(1)创建控件实例时,通过向控件类构造方法中传递关键字参数来设置控件的属性。例如:lb=L
3、abel(root,text=标签文本内容,fg=red,font=(华文行楷,16)(2)创建控件实例后,通过资源名称获取或设置控件的属性。例如:lbtext=修改后的标签文本内容(3)通过调用控件实例的config()方法修改控件的属性:控件实例名.config(属性1=值,属性2=值,.)(4)将控件实例的textvariable属性绑定到tkinter内部类型变量,用以获取或设置控件的文本内容。创建一个内部类型变量:var=StringVar()将控件的textvariable属性绑定到该变量:lb=Label(root,textvariable=var)通过该变量的get()方法来获
4、取text属性值,通过该变量的set()来设置text属性值。8.1.4 ikinter布局管理1.pack布局方式pack布局方式的特点是将所有控件组织成一行或一列。调用格式:控 件 实 例 名.pack(side=.,fill=.,expand=.,ipadx=.,ipady=.,padx=.,pady=.)2.grid布局方式grid布局方式的特点是将容器或框架看成是一个由行和列组成的二维表格,并将控件放置到表格的单元格中。调用格式:控 件 实 例 名.grid(row=.,rowspan=.,column=.,columnspan=.,ipadx=.,ipady=.,padx=.,pa
5、dy=.,sticky=.)3.place布局方式place布局方式的特点是直接设置控件在主窗口或框架中的位置坐标,调用格式:控件实例名.place(anchor=.,x=.,y=.,relx=.,rely=.,width=,height=,relwidth=,relheight=.)8.2 tkinter控件应用8.2.1 按钮控件创建按钮控件:btn=Button(root,text=.,command=.)其中参数root表示主窗口对象或容器控件;参数text是一个字符串,用于指定按钮上显示的文本信息;参数command指定单击按钮时执行的函数,该函数也称为按钮的事件处理函数。设置com
6、mand参数时,也可以利用匿名函数来调用函数并传递参数:command=lambda:函数名(参数列表)创建按钮实例后,还需要通过调用某种布局方法将按钮注册到本地窗口系统中,并通过某种布局方式呈现屏幕上。8.2.2 提示性控件创建标签控件:lb=Label(root,text=.)通过标签控件来显示图像(1)创建图像对象:img=PhotoImage(file=.)(2)通过标签控件的image属性来设置要显示的图像文件:标签实例名image=img创建消息控件:msg=Message(root,text=.)创建标签框架控件:lf=LabelFrame(root,text=.)创建框架控件:
7、fm=Frame(root,width=.,height=.,relief=.,bd=.)8.2.3 文本框控件(1)1.单行文本框控件创建单行文本框控件:ety=Entry(root)其中root表示主窗口或容器控件。文本框控件的show属性,可以用来屏蔽用户输入的文本。单行文本框控件的方法(1)ety.get(index1,index2)(2)ety.insert(start,string)(3)ety.replace(index1,index2,string)(4)ety.delete(index1,index2):(5)ety.focus()8.2.3 文本框控件(2)2.多行文本框控
8、件创建多行文本框:txt=Text(root)在多行文本框控件中插入按钮:txt.window_create(index,window=btn)在多行文本框控件中嵌入图像:txt.window_create(index,image=img)8.2.4 选择性控件创建单选按钮控件:rb=Radiobutton(root,text=.,varaible=,value=,command=)创建复选框控件:cb=Checkbutton(root,text=.,varaible=,command=)创建列表框控件:lst=Listbox(root,listvariable=,selectmode=)使用
9、selectmode属性于指定列表框的选择模式,该属性的取值如下:SINGLE(单选)、MULTIPLE(简单多选)、EXPANDED(扩展多选)以及BROWSE(浏览,默认值)。8.2.5 滚动条和滑块创建滚动条控件:sb=Scrollbar(root,orient=.,command=)将滚动条绑定到文本框或列表框等控件:应将滚动条的command属性设置为要绑定控件的yview方法,以便在改变滚动条上滑块位置时更新显示内容;另外还要将要绑定控件的yscrollcommand属性设置为滚动条的set方法,以便在更新显示内容时更改滑块的位置。创建滑块控件:sc=Scale(root,leng
10、th=,width=,from_=,to=,resolution=,orient=,variable=,command=)8.2.6 菜单控件(1)1.主菜单创建主菜单系统主要包括以下步骤。(1)创建主菜单控件:mainmenuMenu(root)(2)将主菜单控件绑定到主窗口对象:rootmenu=mainmenuroot.config(menu=mainmenu)(3)在主菜单中创建下拉式菜单,以主菜单为容器控件创建菜单项:submnu=Menu(mainmenu,tearoff=)mainmenu.add_cascade(label=菜单标题,menu=submenu)(4)在下拉式菜单
11、中添加菜单命令:submenu.add_command(label=,accelerator=command=)8.2.6 菜单控件(2)2.上下文菜单创建上下文菜单的步骤与创建主菜单类似,只是不要菜单实例绑定到主窗口。为了在右键单击某个控件时弹出菜单,需要调用菜单控件的post()方法在鼠标右键单击位置显示菜单。3.选项菜单创建选项菜单控件:om=OptionMenu(root,var,选项1,选项2,选项3,)8.2.7 子窗口控件创建子窗口控件:newwin=Toplevel(root)创建子窗口实例后,可以通过调用title()方法设置其标题,通过调用geometry()方法设置其大小
12、,还可以其上面创建和布局其他控件,或者为其添加菜单系统。子窗口属于主窗口的子控件,关闭子窗口后不会影响主窗口,因此不会结束应用程序的运行。如果关闭主窗口,则包括子窗口在内的整个用户界面都会关闭。8.2.8 ttk子模块控件导入tkinter模块和ttk子模块:from tkinter import*from tkinter.ttk import*创建组合框控件:cmb=Combobox(root,textvariable=.,values=.)组合框控件的常用方法(1)get()(2)current()8.3 对话框8.3.1 消息对话框消息对话框是用于显示消息文本的对话框,此类对话框通常包含
13、一个图标、一段文本和一些按钮,可以让用户单击通过相应的按钮来做出不同的响应。创建模式消息对话框:变量名=消息对话框函数名(title=.,message=.)常用的消息对话框函数(1)askokcancel()(2)askquestion()(3)askyesno()(4)askretrycancel()(5)askyesnocancel()(6)showerror()(7)showinfo()(8)showwarning()8.3.2 输入对话框创建输入对话框的调用格式:变量名=输入对话框函数名(title=,prompt=)常用的输入对话框函数(1)askstring():显示字符串输入对
14、话框。(2)askinteger():显示整数输入对话框。(3)askfloat():显示浮点数输入对话框。8.3.3 文件对话框文件对话框函数的调用格式如下:path=文 件 对 话 框 函 数(title=,initialdir=.,filetypes=.,defaultextension=)常用的文件对话框函数(1)askpenfilename():用于显示一个打开文件对话框。(2)askpenfilenames():用于显示一个打开文件对话框。(3)asksaveasfilename():用于显示一个保存文件对话框。8.3.4 颜色对话框颜色对话框函数调用格式:color=colorc
15、hooser(color=,选项列表)其中color指定打开颜色对话框时的默认颜色。该函数的返回值为元组类型,其中包含两个元素,第一个元素是RGB十进制浮点数元组,第二个元素是RGB十六进制字符串。8.4 事件处理8.4.1 事件处理程序1.常用鼠标事件按下鼠标左键:;释放鼠标左键:;按住鼠标左键移动:;双击鼠标左键:;转动鼠标滚轮:;鼠标指针进入控件:;鼠标指针离开控件:。2.常用键盘事件按下键盘任意键:;按下字母键和数字键:;按下回车键:;按下空格键:;按下方向键:、;按下功能键:;按下组合键:键名之间用减号连接3.事件对象发生每个事件时系统都会创建一个事件对象并将其传入事件处理函数。事件对象具有一些属性,用于描述事件的详细情况。4.事件处理函数的一般形式def 函数名(event):函数体8.4.2 事件绑定(1)绑定到窗口实例:窗口实例名.bind(事件名,事件处理函数名)(2)绑定到特定控件实例:控件实例名.bind(事件名,事件处理函数名)(3)绑定到所有控件实例:窗口实例名.bind_all(事件名,事件处理函数名)(4)绑定到控件类事件:控件实例名.bind_class(事件名,事件处理函数名)
限制150内