上海交通大学 python程序设计课程ppt ch8-1.pptVIP

上海交通大学 python程序设计课程ppt ch8-1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形用户界面 * * * 程序的用户界面 程序中与用户进行交互的部分 用户通过UI向程序输入数据或者请求程序执行特定任务 程序通过UI向用户显示各种信息 UI应该是用户友好的 两类UI 命令行界面 图形界面(GUI) * * GUI构件 窗口Window 是容器:可以容纳其他构件的构件 程序有一个根窗口 标签Label 按钮Button 菜单Menu 框架Frame 也是容器 * * 构件之间的关系 父子关系 在一个构件内创建另一个构件 界面上全体构件形成一个层次结构 顶层是根窗口 父构件内安排子构件:使用布局管理器 * * 事件驱动 GUI程序的执行流程取决于与用户的实时交互 例如:Word程序的执行 事件驱动编程 普通程序的执行:启动——做事——终止 事件驱动程序的执行:启动——事件循环 等待事件发生,然后处理 程序的终止也是由特定事件(如关闭窗口事件)引起的 * * 基本概念 事件:例如点击鼠标,按下键盘等. 事件处理程序:对事件进行处理的代码. 事件驱动编程:一种编程范型 程序有一个事件循环 事件监测 OS功能,由工具包提供支持 事件处理 应用程序员只需编写自己的事件处理程序 * * GUI编程 需要GUI工具包 将低层细节对程序员隐藏 跨平台 Python标准库:Tkinter GUI编程 设计界面外观 为每个构件定义事件处理代码 建立启动初始化和总控部分 * * * Tkinter的常用构件类 Button Canvas Checkbutton Entry Frame Label Listbox Menu Message Radiobutton Text Toplevel * * * 最简单的Tkinter程序 导入Tkinter 建立根窗口 进入事件循环 例:eg8_1.py from Tkinter import * root = Tk() root.mainloop() * * * 在窗口中添加构件 两步: 创建 布局 例:eg8_2.py from Tkinter import * root = Tk() aLabel = Label(root,text=Hello World) aLabel.pack() root.mainloop() * * * 在窗口中添加构件 构件对象有很多属性(实例变量): 创建时设置属性的值 属性一般都有缺省值 用命名参数方式设置较方便:属性=属性值 创建时不设置,将来再设置或修改 利用构件类的config方法: 对象.config(属性=属性值) 对象视为字典: 对象[属性]=属性值 根窗口 根窗口的标题设置 root.title(My GUI) 缺省值为Tk 根窗口的尺寸设置 root.geometry(400x400) 缺省值为200x200 * 构件间的父子关系 GUI中的所有构件按父子关系构成树状层次结构 每个构件都有master和children属性 Tkinter自动维护这两个属性的值 编程时可利用这两个属性,例如: aLabel.master.title(My GUI) * 界面设计过程 根据需要创建多个构件,然后在窗口中进行布局. 例:eg8_3.py from Tkinter import * root = Tk() aLabel = Label(root,text=Hello World) aLabel.pack() aButton = Button(root,text=Click Me) aButton.pack() root.mainloop() * * * * 常用构件:标签 类:Label lb = Label(窗口,选项设置) text:标签文本内容 width:标签宽度 fg:前景色(文本颜色) 例如 aLabel = Label(root,text=Hello World) aLabel.pack() Label(root,text=red color,fg=red).pack() 注意写法:对象创建与方法调用合二为一 * * * 常用构件:按钮 类:Button btn = Button(窗口,选项设置) text:按钮上的文本 command:点击按钮时要执行的命令 需要提供一个函数或方法名f 注意不是函数调用f() height,width fg,bg relief:RAISED/FLAT/SUNKEN/GROOVE/ state:NORMAL/ACTIVE/DISABLED * * * 例:按钮 下例中按钮对应的函数是root对象的方法quit b=Button(root,text=Quit,command=root.quit) b.pack() root.mainloop() # 点击按钮退出

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档