《Python程序设计》课件—07图形用户界面

上传人:sat****105 文档编号:290120299 上传时间:2022-05-09 格式:PPT 页数:21 大小:415.50KB
返回 下载 相关 举报
《Python程序设计》课件—07图形用户界面_第1页
第1页 / 共21页
《Python程序设计》课件—07图形用户界面_第2页
第2页 / 共21页
《Python程序设计》课件—07图形用户界面_第3页
第3页 / 共21页
《Python程序设计》课件—07图形用户界面_第4页
第4页 / 共21页
《Python程序设计》课件—07图形用户界面_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《Python程序设计》课件—07图形用户界面》由会员分享,可在线阅读,更多相关《《Python程序设计》课件—07图形用户界面(21页珍藏版)》请在金锄头文库上搜索。

1、口令:RAPID708第第7章章 图形用户界面图形用户界面学习目标u了解Tkinter工具包的作用。u掌握Tkinter常用组件的使用。Tkinter简介“Tkinter”是Python的标准库,它对“TCL”或“TK”(工具控制语言)进一步封装,和“tkinter.ttk”和“tkinter.tix”共同提供强大的跨平台GUI编程的功能,IDLE就是使用“Tkinter”进行开发的。“Tkinter”的安装比较简单,安装“Python”的时候就可以选择安装。测试样例测试“tkinter”安装后默认自带的案例: import tkinter tkinter._test()窗口组件编写编写“Tk

2、inter”应用的主体框架具体步骤如下应用的主体框架具体步骤如下.:u定义Windowns窗口及其属性。u填写窗口内容。u执行“window.mainloop”激活窗口。import tkinter as tkf1=tk.Tk()f1.wm_title(Python GUI 窗口显示)tk.mainloop()标签标签是“Tkinter”模块中最简单的组件,主要功能是显示提示信息。import tkinter as tkf1=tk.Tk()f1.wm_title(Python GUI 窗口显示)l1=tk.Label(f1,text=欢迎学习Python!,background=yellow)

3、l2=tk.Label(f1,text=Python使我快乐!,background=green)l1.pack()l2.pack()tk.mainloop()按钮按钮是非常重要的组件,通过单击或多次点击时可以执行相对应的功能。import tkinter as tkf1=tk.Tk()f1.wm_title(Python GUI 窗口显示)b1=tk.Button(f1,text=按钮1)b1width=20b1height=10b1background=yellowb1.pack()tk.mainloop()按钮事件处理u“command”属性属性import tkinter as tkd

4、ef event1(): global f1,num num+=1 l1=tk.Label(f1,text=点击按钮+str(num)+次!,background=red) l1.pack()num=0 f1=tk.Tk()f1.wm_title(Python GUI 窗口显示)b1=tk.Button(f1,text=按钮1,command=event1)b1.pack()tk.mainloop()u“bind( )”方法方法import tkinter as tkdef event1(event): global f1,num num+=1 l1=tk.Label(f1,text=点击按钮

5、+str(num)+次!,background=yellow) l1.pack()num=0 f1=tk.Tk()f1.wm_title(Python GUI 窗口显示)b1=tk.Button(f1,text=按钮1)b1.bind(,event1)b1.pack()tk.mainloop()界面布局“pack”布局会默认选择合适的位置和大小,当有多个组件时会从上往下依次排列。参数参数属性属性解释解释sidetop: 上对齐。botton: 下对齐。left: 左对齐。right: 右对齐设置组件的对齐方式fillx:水平方向填充;y:竖直方向填充;both:水平和竖直方向填充;none:不

6、填充设置组件的填充方式expandyes:扩展整个空白区域; no:不扩展设置组件是否展开ipadx/ipady窗口大小范围内设置x方向(或者y方向)内部间隙(子组件之间的间隔)padx/pady窗口大小范围内设置x方向(或者y方向)外部间隙(与之并列的组件之间的间隔)“pack( )”函数常用参数:import tkinter as tkf1=tk.Tk()tk.Label(f1, text=上).pack(side=top)tk.Label(f1, text=下).pack(side=bottom)tk.Label(f1, text=左).pack(side=left)tk.Label(f

7、1, text=右).pack(side=right)f1.mainloop()界面布局“grid”布局是网格布局,可以将界面分为几行几列,然后在网格中添加对应组件。网格布局的相对位置并不会随窗体大小不同而发生改变。“grid( )”函数常用参数:参数参数解释解释row设置行(默认从0开始)column设置列(默认从0开始)skicky设置开始方向N:上;S:下;W:左;E:右ipadx/ipady设置x方向(或者y方向)内部间隙(子组件之间的间隔)padx/pady设置x方向(或者y方向)外部间隙(与之并列的组件之间的间隔)import tkinter as tkf1=tk.Tk()l1=t

8、k.Label(f1,text=账号:9527).grid(row=0,sticky=w)l2=tk.Label(f1,text=密码:9527).grid(row=1,sticky=w)b1=tk.Button(f1,text=登陆).grid(row=2,sticky=w)tk.mainloop()界面布局“place”布局给定固定的坐标,然后添加组件。这种方式操作复杂,不能随意放大或缩小窗口,否则就会导致布局混乱,所以使用较少。import tkinter as tkf1=tk.Tk()l1=tk.Label(f1,text=Hello).place(x=0,y=0)l1=tk.Labe

9、l(f1,text=Python).place(x=20,y=20)f1.mainloop()事件“Tkinter”中事件处理使用 “bind”函数。u“bind”函数使用语法如下:函数使用语法如下:组件对象组件对象.bind(“events”,fun)“events”:事件类型。“fun”:回调函数(事件处理函数名)。常用事件类型如下:1.鼠标事件鼠标事件:其中的取值为:其中的取值为1、2或或3。x为1时:鼠标左击事件。x为2时:鼠标中击事件。x为3时:鼠标右击事件。2.键盘事件键盘事件:X可以为键盘上任意键,直接点击即可触发事件。:X可以为键盘上F系列的任意键,直接点击即可触发事件。:X可

10、以为键盘上任意键,“Ctrl+x”即可触发事件。输入框输入框的功能是获取用户输入的数据信息。from tkinter import *def reg(): myAccount = a_entry.get() # 获取户输的户名 myPassword = p_entry.get() # 获取户输的密码 a_len = len(myAccount) # 获取输的户名 p_len = len(myPassword) # 获取输的密码 if myAccount = 123 and myPassword = 123: msg_labeltext = 登录成功 elif myAccount = 123 a

11、nd myPassword!= 123: msg_labeltext = 密码错误 a_entry.delete(0, a_len) #清除显示 p_entry.delete(0, p_len) #清除显示 elif myAccount != 123 and myPassword= 123: msg_labeltext = 户名错误 a_entry.delete(0, a_len) p_entry.delete(0, p_len) else : msg_labeltext = 户名、密码错误 a_entry.delete(0, a_len) p_entry.delete(0, p_len)ro

12、ot = Tk()# 户名a_label = Label(root, text = 户名: )a_label.grid(row = 0, column = 0, sticky = W)a_entry = Entry(root)a_entry.grid(row = 0, column = 1, sticky = E)# 密码p_label = Label(root, text = 密码: )p_label.grid(row = 1, column = 0, sticky = W)p_entry = Entry(root)p_entryshow = * # 密码显示为 *p_entry.grid(

13、row = 1, column = 1, sticky = E)# 登录按钮btn = Button(root, text = 登录, command = reg)btn.grid(row = 2, column = 1, sticky = E)# 提示信息msg_label = Label(root, text = )msg_label.grid(row = 3)root.mainloop()文本框文本框实质上就是一个文本。from tkinter import *f1=Tk()t1=Text(f1,width=30,height=20)t1.pack()f1.mainloop()菜单顶层菜

14、单一般包含文件、编辑、查看、窗口、帮助等下拉菜单,使用“Menu”类来自定义菜单,使用“add_command( )”方法来添加菜单项。from tkinter import *f1=Tk()m1=Menu(f1)for i in 文件,开始,插入,设计: m1.add_command(label=i)f1menu=m1f1.mainloop()菜单子菜单负责向顶级菜单中添加内容。from tkinter import *f1=Tk()m1=Menu(f1)fm1=Menu(m1)for i in 信息,新建,打开,保存: fm1.add_command(label=i)m1.add_casc

15、ade(label=文件,menu=fm1)f1menu=m1f1.mainloop()菜单弹出菜单也叫“右键菜单”,鼠标单击右键时触发而产生的菜单。from tkinter import *def events(): global f1 Label(f1,text=已点击共享!).pack()def m_event(event): global m1 m1.post(event.x_root,event.y_root)f1=Tk()m1=Menu(f1)fm1=Menu(m1)for i in 信息,新建,打开,保存: fm1.add_command(label=i)fm1.add_comm

16、and(label=共享,command=events)m1.add_cascade(label=文件,menu=fm1)f1.bind(,m_event)f1menu=m1f1.mainloop()菜单单选菜单和复选菜单的使用类似于单选按钮和复选按钮,单选菜单使用 “add_radiobutton( )”函数,每次只能选定一个菜单项,复选菜单使用 “add_checkbutton( )”函数,可以同时选定多个多个菜单项,这两种菜单一旦被选定在菜单项前面就会出现“” 对号标记。from tkinter import *f1=Tk()m1=Menu(f1)fm1=Menu(m1)for i in 创建,打开,保存,打印: fm1.add_radiobutton(label=i) #单选菜单fm1.add_separator()#添加分割线for j in 关闭,重启: fm1.add_checkbutton(label=j) #复选菜单m1.add_cascade(label=文件,menu=fm1)f1menu=m1f1.mainloop()单选按钮和复选按钮单选按钮和复选按钮相当是把

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号