(
课件网) 2021浙江教育-出卷网-信息技术八(上) 第15课 Python的图形界面设计GUI 1 tkinter模块 2 tkinter模块常用组件 3 tkinter模块程序设计 4 随堂练习 CONTENT 教学目标 教学重点:图像化界面设计的基本步骤,tkinter常用组件的使用。 教学难点:图形化界面的程序实现,String Var对象的使用。 通过简单的GUI程序设计,了解tkinter模块的概念。 了解常用组件,能够编写简单使用tkinter模块的应用程序. GUI:图形化界面设计Graphic User Interface简称GUI,通过鼠标对菜单】按钮等图像化元素触发指令并从标签、对话框等图像化显示容器中获取人机对话信息。步骤:导入模块———创建GUI主窗体———添加人机交互组件———编写函数———主事件循环中触发事件相应。一、tkinter模块:没有组件的窗体import tkinter # 导入tkinter模块win=tkinter.Tk() # 生成一个主窗体对象win.geometry("250x130")win.title("没有组件的窗体")win.mainloop() #进入消息循环该窗体可以最大化、最小化或关闭可以调整大小可以用方法geometry()及时刷新用方法mainloop()Tkinterd常用组件:带退出按钮的窗体import tkinter as tk # 导入tkinter模块并重命名为tkwin=tk.Tk() # 生成一个主窗体对象win.title("带退出按钮的窗体")win.geometry("250x130") #窗体大小#退出按钮事件处理函数def my_quit():win.quit()win.destory()#退出按钮对象添加but_quit=tk.Button(win,text="退出",command=my_quit,width=10,height=2)but_quit.pack()win.mainloop() #进入消息循环乘号另外复制粘贴进去250x1302tkinter模块常用组件组件名称描述Label标签可以显示文本和位图Entry输入组件用于显示简单的文本内容Text文本组件用于显示多行的文本内容Button按钮组件在程序中显示按钮tkinter模块常用组件tkinter组件的布局方法方法功能pack()即可实现水平排列,也可以实现垂直排列grid()按照行、列的方式摆放组件place()指定组件的绝对位置 程序设计中,解决复杂问题的最有效方法是“自顶向下”的设计方法和“自底向上”的执行方法。 其基本思想:首先将一个复杂问题分解为多个小问题,然后只需把处理这些小问题的解决方法组合起来,就可以得到整体的解决方案。 3 tkinter模块程序设计 3 tkinter模块程序设计思路 #设计基本框架 import tkinter as tk import tkinter.messagebox win=tk.Tk() win.title("用户登录") win.geometry("250x130") #--功能代码开始-- #--功能代码结束-- win.mainloop() 3 tkinter模块程序设计思路 #--登录窗口各组件设计-- #设计2个提示标签 labname=tk.Label(win,text="账号:",width=80) labpwd=tk.Label(win,text="密码:",width=80) #设计2个输入框(textvariable为文本框的值,并关联var_Name) entname=tk.Entry(win,width=100,textvariable=var_Name) entpwd=tk.Entry(win,show="*",width=100,textvariable=var_Pwd) #设计3个按钮 but_Ok=tk.Button(win,text="登录",command=login) but_Cancel=tk.Button(win,text="重置",command=cancel) but_quit=tk.Button(win,text="退出",command=quit) 3 tkinter模块程序设计思路 #设计功能函数 #设置变量 var_Name=tk.StringVar() #设置变量为StringVar对象 var_Name.set("") var_Pwd=tk.StringVar() var_Pwd.set("") #按钮处理函数 def login(): name=var_Name.get() #获取用户名 pwd=var_Pwd.get() #获取密码 if name=="admin" and pwd=="python@16": tk.messagebox.showinfo(title="用户登录",message="成功!") else: tk.messagebox.showinfo(title="用户登录",message="失败!") def cancel(): var_Name.set("") #清空用户名 var_ ... ...