您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 关于 matlab gui设计界面按键激活及源程序
第八章图形用户界面(GUI)本章将介绍:图形用户界面的设计原则;图形用户界面的操作步骤。目录8.1GUI设计向导8.2编程设计GUI8.3图形用户界面设计实例习题8.1GUI设计向导8.1.1GUI概述8.1.2启动GUIDE8.1.3GUIDE提供的控件本节介绍:图形用户界面(GUI)的基本概念;GUI开发环境GUIDE;GUI组成部分的用途和使用方法;GUI创建的详细步骤。8.1.1GUI概述GUI是一种包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的控件都集成在这个环境中。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:该文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;M文件:该文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。GUIDE可以根据GUI设计过程直接自动生成M文件框架,优点如下:M文件已经包含一些必要的代码;管理图形对象句柄并执行回调函数子程序;提供管理全局数据的途径;支持自动插入回调函数原型。GUI创建包括界面设计和控件编程两部分,主要步骤如下:通过设置GUIDE应用程序的选项来运行GUIDE;使用界面设计编辑器进行界面设计;编写控件行为响应控制(即回调函数)代码。8.1.2启动GUIDE在MATLAB中,GUIDE提供多个模板来定制GUI。这些模板均已包括相关的回调函数,可以通过修改对应的M文件函数,实现指定功能。在MATLAB中,可以通过如下两种方法来访问模板:直接输入命令GUIDE,打开如下图所示的界面;如果GUIDE已经打开,通过【File】菜单下的【New】选项也可以打开如下图所示的界面。在模板设计界面中,可以选择创建新的GUI或者打开原有的GUI。在创建新的GUI时MATLAB提供以下4种模板:空白模板;带有控制按钮模板;带有坐标轴和菜单模板;问答式对话框模板。其中的空白模板如下图所示。8.1.3GUIDE提供的控件在空白模板中,GUIDE提供界面控件以及设计工具集来实现界面设计,其中,控件分布在界面设计编辑器的左侧,如下图所示。按钮:通过鼠标单击按钮可以实现某种行为,并调用相应的回调函数。滚动条:能够通过移动滚动条来改变指定范围内的数值输入,滚动条的位置代表输入数值。单选按钮:单选按钮通常以组为单位,一组单选按钮之间是一种互相排斥的关系。复选框:复选框与单选按钮类似,只是多个复选框可以同时有效。编辑框:编辑框可编辑或修改字符串的文本域。静态文本:静态文本通常作为其他控件的标签使用。弹出式菜单:弹出式菜单将打开并显示选项列表。列表框:列表框显示列表项,并能够选择其中的一项或多项。拴牢按钮:拴牢能够产生一个二进制状态的行动。组合框:组合框是图形窗口中的一个封闭区域,它把相关联的控件组合在一起。按钮组:按钮组类似于组合框,但是它可以响应单选按钮以及拴牢按钮的高级属性。坐标轴:坐标轴可以设置关于外观和行为的参数。8.1.4界面设计工具集1.界面设计编辑器2.属性检查器3.对象浏览器4.菜单编辑器GUIDE提供的界面设计工具集包括如下内容:界面设计编辑器:添加并排列图形窗口中的控件对象。属性检查器:检查并设置控件的属性值。对象浏览器:观察此次MATLAB运行过程中图形对象的句柄集成关系表。菜单编辑器:创建窗口菜单和上下文菜单。1.界面设计编辑器界面设计编辑器能够从控件面板中选择控件,并将它们排列在图形窗口中。界面设计编辑器由以下4个部分组成:控件面板;工具栏;菜单栏;界面区域。其中:控件面板包含所有控件;工具栏和菜单栏可以用来启动其他界面设计工具;界面区域实际上就是激活后的GUI图形窗口。(1)控件面板在GUI界面中放置控件:单击控件面板中需要放置控件的按钮;在光标变为十字形后,使用十字形光标的中心点来确定控件左上角的位置;可以通过拖动鼠标来确定控件的大小。所有控件布置好后,可以使用激活按钮或选择【Tools】菜单下的【ActivateFigure】选项检查GUIDE的设计结果,激活时将(提示)保存FIG文件和M文件。(2)上下文菜单使用界面设计编辑器进行界面设计时:选择一个对象;单击鼠标右键来显示其对应的上下文菜单。下图描述了一个与按钮相联系的上下文菜单,同时所有已定义的回调函数都可列出。(3)排列工具可以在界面区域内通过选择并拖动任意控件(群)对其进行控件排列,当选择【Tools】菜单下的【AlignObjects】选项时即可打开下图所示的排列工具栏。(4)网线和标线界面区域内可以使用网格和标线辅助设计,当选择【Tools】菜单下的【GridandRulers】选项时即可打开下图所示的网格和标线对话框。2.属性检查器属性检查器提供所选择对象的可设置属性列表及当前属性值,并可以进行手动设置,当选择【View】菜单下的【PropertyInspector】选项时即可打开类似下图所示的属性检查器。3.对象浏览器对象浏览器可以显示图形窗口中所有对象的继承关系。4.菜单编辑器GUIDE能够创建菜单栏和上下文菜单。当选择【Tools】菜单下的【MenuEditor】选项时即可打开下图所示的菜单编辑器。(1)菜单栏菜单使用【NewMenu】工具栏创建一个菜单;指定其隶属关系;指定其属性。下图显示一个设计的菜单,当激活图形窗口时即可看到结果。(2)上下文菜单上下文菜单设计好后,当单击鼠标右键时它随之出现。使用【NewContextMenu】工具栏创建一个菜单;指定其隶属关系;指定其属性。8.1.5GUI组态1.窗口重画行为2.命令行访问3.生成FIG文件和M文件在添加控件前,应使用GUIDE应用程序选项对话框对GUI组态进行设置。选择界面设计编辑器的【Tools】菜单下的【ApplicationOptions】选项打开如下图所示选项对话框。该对话框能够设置的选项如下:窗口重画行为(Resizebehavior);命令行访问(Command-lineaccessibility);生成FIG文件和M文件(GenerateFIG-fileandM-file);生成回调函数原型(Generatecallbackfunctionprototypes);同一时刻仅允许运行一个应用程序实例(GUIallowsonlyoneinstancetorun(singleton));使用系统背景颜色设置(Usingthesystembackgroundcolors);仅生成FIG文件(GenerateFIG-fileOnly)。8.1.6GUI界面设计GUI界面设计是通过使用界面设计编辑器进行的,控件的布置前面已经介绍,但在布置后往往需要定义控件的属性。用鼠标双击该控件,即可看到其对应的属性检查器。当第一次将按钮布置在界面后,双击该按钮即可看到如下图所示的属性检查器,其中包含属性Tag和Callback。8.2编程设计GUI1.M文件及数据管理2.回调函数的使用方法3.图形窗口的行为控制GUI的编程方法:系统生成的应用程序M文件的含义,以及利用句柄结构体管理GUI数据的方法;GUI控件回调函数的类型和中断方法;GUI图形窗口的行为控制。1.M文件及数据管理(1)M文件GUI的一个重要任务就是通过控件响应指定行为。GUIDE给添加到应用程序M文件中的回调函数自动命名,并使控件被激活时该函数能够被调用。(2)数据管理GUIDE使用应用程序M文件来定义和实现数据的存储和读取,文件中包含所有GUI控件对象句柄的结构体handles。2.回调函数的使用方法(1)回调函数类型①图形对象的回调函数ButtonDownFcn:当用户将鼠标放置在某个对象时,单击鼠标左键,MATLAB将调用回调函数。CreatFcn:MATLAB将在创建对象时,调用回调函数。DeleteFcn:MATLAB在删除对象之前调用回调函数。②图形窗口的回调函数CloseRequestFcn:当请求关闭图形窗口时,调用回调函数。KeyPressFcn:当用户在图形窗口内按下鼠标键时,调用回调函数。ResizeFcn:当用户重画图形窗口时,调用回调函数。WindowButtonDownFcn:当用户在图形窗口内无控件的地方按下鼠标键时,调用回调函数。WindowButtonMotionFcn:当用户在图形窗口中移动鼠标时,调用回调函数。WindowButtonUpFcn:当用户在图形窗口中释放鼠标键时,调用回调函数。(2)回调函数执行中断默认情况下MATLAB允许回调函数执行中断,且可以随时终止操作,则终止操作对应的回调函数将会中断装载数据操作对应的回调函数。①可执行中断设置图形对象都包含属性Interruptible,该属性的默认值为on,表示回调函数可以执行中断。同时图形对象都包含属性BusyAction,它有如下两种可能的取值:queue:将事件保存在事件序列中并等待不可中断回调函数执行完毕后处理。cancel:放弃该事件并将事件从序列中删除。②执行中断的规则遇到命令drawnow、figure、getframe、pause或waitfor,MATLAB将该回调函数挂起并开始处理事件序列。事件序列的顶端事件要求重画图形窗口,MATLAB将执行重画并继续处理事件序列中的下一个事件。事件序列的顶端事件将会导致一个回调函数的执行,MATLAB将判断回调函数被挂起的对象是否可中断。当所有事件都被处理后,MATLAB恢复被中断函数的执行。3.图形窗口的行为控制在设计GUI时,需要考虑GUI图形窗口的行为控制,主要包括如下3种情况:实现图形注释的工具GUI,通常一幅图形需要一个新的工具实例。询问用户并阻止MATLAB运行直至用户作出回答,此时图形窗口仅可以被观察。警告用户其指定的操作将会破坏文件的对话框,该对话框能够执行用户所需的操作前强迫用户作出回答。下面3种技术能够有效地解决上述3种情况。允许单个或多个GUI实例同时运行。在显示GUI时阻止MATLAB的运行。使用模态图形窗口使用户只能与当前执行的GUI进行交互。8.3图形用户界面设计实例编写函数,这些函数都包含在随图形用户界面设计时产生的M文件中。1.图形用户界面打开时自动运行的函数simple_gui_OpeningFcn(),其具体代码序列如下:2.3个按钮的回调函数(Callback),其具体代码序列如下:3.下拉菜单的回调函数(Callback),其具体代码序列如下:4.菜单项Close的回调函数(Callback),其具体代码序列如下:最后激活的图形用户界面如下图所示。当在下拉菜单中选择【sinc】且单击【Mesh】按钮,可得到如下图所示的结果。当选择【File】菜单下的【Close】选项,图形用户界面将关闭。关闭guide后,在命令窗口直接输入如下代码序列也可以运行图形用户界面。clearsimple_gui由上面的例子,可以总结出图形用户界面设计的基本流程:首先新建一个模板,并设置GUI应用程序选项,保存文件;其次布置界面,并设置模板和控件的属性;再次设置初始/结束函数和回调函数;最后激活/运行图形用户界面。习题1.利用图形用户界面,实现记事本【File】菜单下的【新建】、【打开】、【保存】、【另存为】和【退出】菜单项功能。2.利用图形用户界面,设计能够完成增、删、改通讯簿记录的程序。
本文标题:关于 matlab gui设计界面按键激活及源程序
链接地址:https://www.777doc.com/doc-3691825 .html