书签 分享 收藏 举报 版权申诉 / 27
上传文档赚钱

类型Python程序设计课件第11章GUI界面编程.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:3713825
  • 上传时间:2022-10-06
  • 格式:PPTX
  • 页数:27
  • 大小:332.20KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Python程序设计课件第11章GUI界面编程.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python 程序设计 课件 11 GUI 界面 编程
    资源描述:

    1、 GUI概述与窗口布局概述与窗口布局 基于基于wxPython框架的框架的GUI开发开发第11章 GUI界面编程参考书目Python 程序设计目录 GUI概述与窗口布局概述与窗口布局 基于基于wxPython框架的框架的GUI开发开发这里说明图片内容 GUI概述与窗口布局概述与窗口布局 基于基于wxPython框架的框架的GUI开发开发目录这里说明图片内容 GUI概述与窗口布局1 什么是GUIGUI(Graphical User Interface,图形用户接口)是指用图形方式显示计算机操作的用户界面。图形用户界面一般有以下5个元素组成:组件窗体属性事件方法GUI概述与窗口布局1 什么是GUI

    2、Python有许多优秀的GUI工具集,下面介绍Tkinter和wxPython两个GUI工具。Tk图形用户界面工具包标准的Python接口。Tkinter的调用转换成Tcl命令,然后交给Tcl解释器进行解释,实现Python的GUI界面Tkinter 作为优秀的跨平台GUI库 wxWidgets 的Python封装和Python模块的方式提供给用户的。是一款开源软件,并且具有非常优秀的跨平台能力wxPythonGUI概述与窗口布局1 什么是GUIGUI应用程序都是基于窗口的,其程序的流程一般如下:1.1.定义主窗口定义主窗口2.2.创建主窗口创建主窗口3.3.创建主窗口内的组件创建主窗口内的组

    3、件4.4.显示主窗口显示主窗口5.5.进入消息接收和处理的循环过程进入消息接收和处理的循环过程GUI程序执行后不会主动退出,都停留在接收消息,根据消息执行相应操作的循环中。GUI概述与窗口布局1 什么是GUIGUI程序的消息处理模型如下:以触摸屏为例,当用户点击触摸屏,首先感知到屏幕上被触摸的XY坐标是操作系统内核空间的触摸屏设备驱动程序,然后设备驱动程序会将用户操作封装成消息传递给GUI程序运行时创建的消息队列,GUI程序在运行过程中需要实时处理队列中的消息,当队列没有消息时,程序将处于停滞状态。GUI概述与窗口布局1 什么是GUIGUI程序的开发,一般分为两部分:在代码中用程序创建窗口及窗

    4、口内元素;1 编写消息处理函数对内核空间发来的消息做出响应。2GUI概述与窗口布局3 布局管理器图形用户界面中一般需要放置多种用户组件,比如按钮、输入框、文本框等。布局管理器管理界面中的组件位置和大小的设置。常用的布局管理器如下:不使用任何布局管理器,将控件放在固定的位置绝对位置布局 将控件按照网格方式排列,将容器分成规则矩形块GridLayout(网格布局)默认的对齐方式为居中对齐,布局方式为自左向右排列,当一行排满后自动换行FlowLayout(流式布局)把容器简单的划分为东、西、南、北、中5个区域 每个区域只能加入一个控件BorderLayout(边框布局)GUI概述与窗口布局概述与窗口

    5、布局 基于基于wxPython框架的框架的GUI开发开发目录这里说明图片内容 基于wxPython框架的GUI开发1 wxPython框架安装与配置使用pip工具安装wxPython:pip install-U wxPython基于wxPython框架的GUI开发2 利用wx.App子类创建窗体在开始创建应用程序之前,先创建一个没有任何功能的子类。创建和使用一个wx.App子类,需要执行如下4个步骤:定义子类定义子类在定义的子类中写一个在定义的子类中写一个OnInit()OnInit()初始化方法初始化方法在程序的主要部分创建这个类的实例在程序的主要部分创建这个类的实例调用应用程序实例的调用应

    6、用程序实例的MainLoop()MainLoop()方法,这个方法将程方法,这个方法将程序的控制权转交给序的控制权转交给wxPthonwxPthon基于wxPython框架的GUI开发2 利用wx.App子类创建窗体【例】利用wx.App子类创建窗体。import wxclass App(wx.App):def OnInit(self):frame=wx.Frame(parent=None,title=人生苦短,我爱Python)frame.Show()return Trueif _name_=_main_:app=App()app.MainLoop()基于wxPython框架的GUI开发4

    7、使用wxPython框架创建窗体在GUI中框架通常也称为窗口。框架是一个容器,用户可以将它在屏幕上任意移动,并可对它进行缩放,它通常包含诸如标题栏、菜单等。在在wxPythonwxPython中,中,wx.Framewx.Frame是所有框架的父类。当创建是所有框架的父类。当创建wx.Framewx.Frame的子类的子类时,子类应该调用其父类的构造器时,子类应该调用其父类的构造器wx.Frame._init_()wx.Frame._init_()。wx.Framewx.Frame的构的构造器语法格式如下:造器语法格式如下:wx.Frame(parent,id=-1,title=,pos=wx

    8、.DefaultPosition,size=wx.DefaultSize,style=wx.DEFAULT_FRAME_STYLE,name=frame)基于wxPython框架的GUI开发4 使用wxPython框架创建窗体【例】利用【例】利用wx.Frame创建窗体示例。创建窗体示例。import wxclass MyFrame(wx.Frame):def _init_(self,parent,id):wx.Frame._init_(self,parent,id,title=人生苦短,我爱Python,pos=(200,200),size=(400,300)if _name_=_main_

    9、:app=wx.App()frame=MyFrame(parent=None,id=-1)frame.Show()app.MainLoop()基于wxPython框架的GUI开发5 wxPython框架中常用的控件1.StaticText文本类创建完窗口以后,会在在窗口上添加的按钮、文本、输入框等控件。创建完窗口以后,会在在窗口上添加的按钮、文本、输入框等控件。wx.StaticText(parent,id,label,pos=wx.DefaultPosition,size=wx.DefaultSize,style=0,name=staticText)在在wxPythonwxPython中,中

    10、,绘制纯文本绘制纯文本使用类使用类wx.StaticTextwx.StaticText来完成。使用来完成。使用wx.StaticTextwx.StaticText能够改变文本的对齐方式、字体、颜色等。能够改变文本的对齐方式、字体、颜色等。【例】center=wx.StaticText(panel,-1,白日依山尽,黄河入海流。n欲穷千里目,更上一层楼。,(100,80),(200,200),wx.ALIGN_CENTER)基于wxPython框架的GUI开发5 wxPython框架中常用的控件1.StaticText文本类wx.Font(pointSize,family,style,weigh

    11、t,underline=False,faceName=,encoding=wx.FONTENCODING_DEFAULT)wx.Fontwx.Font创建字体,通过设置属性对界面中的字体进行设置创建字体,通过设置属性对界面中的字体进行设置。pointSize:字体的整数尺寸,单位为磅。family:用于快速指定一个字体而无须知道该字体的具体名字。style:指明字体的醒目程度 underline:仅仅在Windows系统下有效果,如果值为True,有下画线,False无下画线 faceName:指定字体名 encoding:允许在几个编码中选择一个,大多数情况下可以使用默认编码基于wxPyth

    12、on框架的GUI开发5 wxPython框架中常用的控件2.TextCtrl输入文本类wx.TextCtrl(parent,id,value=,pos=wx.DefaultPosition,size=wx.DefaultSize,style=0,validator=wx.DefaultValidator,name=wx.TextCtrlNameStr)wx.StaticTextwx.StaticText类只能用于显示静态的文本,要想输入文件与用户类只能用于显示静态的文本,要想输入文件与用户进行交互,要用进行交互,要用wx.TextCtrlwx.TextCtrl类,它允许单行和多行文本。它也可类

    13、,它允许单行和多行文本。它也可以作为密码输入控件,掩饰所按下的按钮。以作为密码输入控件,掩饰所按下的按钮。基于wxPython框架的GUI开发5 wxPython框架中常用的控件import wx#导入wxPythonclass MyFrame(wx.Frame):def _init_(self,parent,id):wx.Frame._init_(self,parent,id,title=会员管理系统用户登录界面,size=(400,300)panel=wx.Panel(self)#创建面板#创建文本和输入框 self.title=wx.StaticText(panel,label=欢迎使用

    14、会员管理系统,pos=(140,20)self.label_user=wx.StaticText(panel,label=用户名:,pos=(50,50)self.text_user=wx.TextCtrl(panel,pos=(100,50),size=(235,25),style=wx.TE_LEFT)self.label_pwd=wx.StaticText(panel,label=密 码:,pos=(50,90)self.text_pwd=wx.TextCtrl(panel,pos=(100,90),size=(235,25),style=wx.TE_PASSWORD)【例】用例】用wx

    15、.TextCtrlwx.TextCtrl类和类和wx.StaticTextwx.StaticText类实现一个包含用户名和类实现一个包含用户名和密码的登录界面。密码的登录界面。基于wxPython框架的GUI开发5 wxPython框架中常用的控件if _name_=_main_:app=wx.App()#初始化应用 frame=MyFrame(parent=None,id=-1)#初始化MyFrame类,并传递参数 frame.Show()#显示窗口 app.MainLoop()#调用主循环方法【例】用例】用wx.TextCtrlwx.TextCtrl类和类和wx.StaticTextwx.

    16、StaticText类实现一个包含用户名和类实现一个包含用户名和密码的登录界面。密码的登录界面。基于wxPython框架的GUI开发5 wxPython框架中常用的控件3.Button按钮类wx.Button(parent,id,label,pos,size=wxDefaultSize,style=0,validator,name=button)按钮是按钮是GUIGUI界面中应用最为广泛的控件,它常常用于捕获用户生成界面中应用最为广泛的控件,它常常用于捕获用户生成的单击事件。其最明显的用途是触发绑定到一个处理函数。的单击事件。其最明显的用途是触发绑定到一个处理函数。#创建确定和取消的界面 se

    17、lf.bt_confirm=wx.Button(panel,label=确定,pos=(105,130)self.bt_cancel=wx.Button(panel,label=取消,pos=(195,130)基于wxPython框架的GUI开发5 wxPython框架中常用的控件4.BoxSizer布局wxPythonwxPython有另一种更智能的布局方式:有另一种更智能的布局方式:sizer(sizer(尺寸器尺寸器)。sizersizer是用是用于自动布局一组窗口控件的算法。当于自动布局一组窗口控件的算法。当sizersizer被附加到一个容器中,被附加到一个容器中,通常是一个框架或面

    18、板。在父容器中创建子窗口控件必须被分别添通常是一个框架或面板。在父容器中创建子窗口控件必须被分别添加到加到sizersizer中。当中。当sizersizer被附加到容器时,它随后就可以管理它所包被附加到容器时,它随后就可以管理它所包含的子布局。含的子布局。控件的几何位置是绝对位置,即固定的。当调整窗口大小时,由于控件坐标不能随着界面的大小变化,会导致界面变得不够美观基于wxPython框架的GUI开发5 wxPython框架中常用的控件4.BoxSizer布局sizer名称描述BoxSizer在一条水平或重垂直窗口部件的布局。控制窗口部件在行为上很灵活。一般用于嵌套的样式,应用面广GridS

    19、izer一个基础的网格布局,当你要放置的窗口部件是同样的尺寸且整齐地放入一个规则的网格中可以使用它FlexGridSizer对GridSizer做了一定改变,窗口部件有不同的尺寸时,可以有更好的结果GridBagSizerGridSizer系列中最灵活的成员。网络中的窗口部件可以随意放置StaticBoxSizer一个标准的BoxSizer,常有标题和环线基于wxPython框架的GUI开发5 wxPython框架中常用的控件4.BoxSizer布局 使用Add()方法将控件加入sizer#添加容器,容器中的控件按纵向排列添加容器,容器中的控件按纵向排列 vsizer=wx.BoxSizer(

    20、wx.VERTICAL)vsizer.Add(self.title,proportion=0,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTRE,border=15)panel.SetSizer(vsizer)Box.Add(control,proportion,flag,border)基于wxPython框架的GUI开发5 wxPython框架中常用的控件5.事件处理事件就是用户执行的动作,如单击按钮就是一个单击事件。事件的处理可利用控件的Bind()方法可以将事件处理函数绑定到事件上,事件发生时,函数被调用。【例】【例】输入用户名密码,点击确定按钮就要判读输入的信息

    21、是否正输入用户名密码,点击确定按钮就要判读输入的信息是否正确,并输出对应的提示,这就要使用确,并输出对应的提示,这就要使用wx.Python的事件处理。的事件处理。bt_confirm.Bind(wx.EVT_BUTTON,OnclickSubmit)wx.EVT_BUTTON:事件类型为按钮事件 OnlickSubmit:方法名。事件发生时执行该方法本章小结本章主要介绍了GUI编程的原理和步骤。并讲解了Python中进行GUI编程使用最多的模块:wxPython的使用。在进行GUI编程时首先是窗口的创建、然后需要熟悉每个模块都支持那些常用的组件,以及这些组件的属性设置和常用方法。由于GUI程序是基于事件处理的,还需要了解常用事件类型和事件绑定。思考与练习1.GUI程序的一般流程是怎样的?2.wxPython中的Frame和Panel有什么作用?3.使用wxPython实现登录、注册程序。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python程序设计课件第11章GUI界面编程.pptx
    链接地址:https://www.163wenku.com/p-3713825.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库