由MATLAB-GUIDE创建GUI

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1由MATLABGUIDE创建GUI这两天,本人写了四篇关于由MATLABGUIDE创建GUI的文章,见迈特莱博。包括MATLABGUIDE基本操作、MATLABGUI基础知识、MATLABGUICallback函数基本操作和MATLABGUIDE数据传递机制。这是本人一个学期教学总结。学期结束了,对本学期MATLAB课程进行总结,发现又有新的动向:在同学们提交的作业中,有大半是用MATLABGUIDE完成的(以前最多20%几,增加一倍)。本学期新增加的教学内容(MATLABGUIDE编程),看来是有用的,受到了同学们的欢迎,看来,MATLABGUIDE工具更适合当代年轻人的思维模式——可视化编程。针对这一情况,相信有更多的网友希望了解这方面知识,所以,写了四篇文章做了系统介绍,但由于虎踞龙蟠SBBS访问量少,为使更多网友受益,所以想到整理一下,发个百度文库。记得我的文章“用MATLAB解方程的三个实例”及“用matlab求定积分的三个实例”等文章均有网友做为百度文库发布,访问量甚至超过原文章,所以,该项工作我提前做了。以下是四篇文章内容,不当之处请批评指正。一、MATLABGUIDE基本操作GUIDE是MATLAB图形用户接口开发环境(GraphicalUserInterfaceDevelopmentEnvironment)的简称,它提供了一系列工具用于建立GUI对象。这些工具极大简化了设计和创建GUI的过程。使用GUI可以完成两项工作:(1)GUI图形界面布局;(2)GUI编程。1.运行GUIDE有三种方法可以启动GUIDE:(1)在命令行输入:guide(2)单击MATLAB主窗口的(GUIDE)按钮;(3)单击MATLAB主窗口【Start】按钮,出现弹出菜单,在主程序组【MATLAB】中选择“GUIDE(GUIBuilder)”选择项。以上三种方法均:生成GUIDE快速启动对话框,如图所示。22.创建新的GUI创建新的GUI时,样板可以选择以下4种:(1)BlankGUI—一个空的样板;(2)GUIwithUicontrols—打开包含一些uicontrol对象的GUI编辑器;(3)GUIwithAxesandMenu—打开包含菜单和一些坐标轴图形对象的GUI编辑器;(4)ModalQuestionDialog—打开一个对话框编辑器,默认为一个问题对话框。一般采用BlankGUI样板。单击OK按钮后,进入GUI编辑界面,如图所示。33.打开已保存的文件在快速启动对话框中选择打开已经存在的GUI时,可通过浏览的方式找到本地磁盘上的用户GUI文件,或在已打开过的列表中直接选择要打开的文件。如图所示。44.GUI编辑界面组成GUI编辑界面主要包括3部分:GUI对象选择区、GUI工具栏和GUI布局区。下面分别介绍这3个部分。(1)GUI对象选择区打开【File】|【Preferences...】|GUIDE,勾选shownameincomponentpalette,则在编辑界面显示GUI对象名称,如图所示。5(2)GUI工具栏GUI工具栏主要由对齐对象、菜单编辑器、Tab顺序编辑器、M文件编辑器、属性查看器、对象浏览器和运行界面组成。(3)GUI布局区GUI布局区用于布局GUI对象。在布局区单击鼠标右键,弹出的菜单如图所示。5.属性查看器属性查看器用来查看、设置或修改对象的属性,是GUI编辑器的主要功能。6调用对象属性查看器有四种方法:(1)在对象上双击;(2)在对象上右击,选择PropertyInspector;(3)选中对象后,单击工具栏上的(PropertyInspector)按钮;(4)菜单栏选择:【View】|PropertyInspecto。如下图所示为pushbutton1按钮对象的属性。6.GUI的M文件创建一个用户界面应用程序,缺省有两个文件组织,*.fig和*.m。均由MATLAB的GUIDE工具自动生成,其中自动生成的M文件,控制并决定GUI对用户操作的响应。它包含运行GUI所需要的所有代码。GUIDE自动生成M文件的框架,用户在该框架下编写GUI组件的回调函数。M文件由一系列子函数构成,包含主函数、Opening函数、Output函数和回调函数。其中主函数不能修改,否则容易导致GUI界面初始化失败。77.实例例如,新建一个文件名为abc的GUI,并在界面上建一个按钮,点击该按钮,则绘出以下图形,界面和其对应的M文件如下:8functionvarargout=abc(varargin)%ABCM-fileforabc.fig%ABC,byitself,createsanewABCorraisestheexisting%singleton*.%H=ABCreturnsthehandletoanewABCorthehandleto%theexistingsingleton*.%ABC('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinABC.Mwiththegiveninputarguments.%ABC('Property','Value',...)createsanewABCorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforeabc_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtoabc_OpeningFcnviavarargin.%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).9%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpabc%LastModifiedbyGUIDEv2.530-Mar-201013:22:20%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@abc_OpeningFcn,...'gui_OutputFcn',@abc_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforeabcismadevisible.functionabc_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstoabc(seeVARARGIN)%Choosedefaultcommandlineoutputforabchandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesabcwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%---Outputsfromthisfunctionarereturnedtothecommandline.10functionvarargout=abc_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%---Executesonbuttonpressinpushbutton2.functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)figuret=0:0.1:2*pi;plot(t,sin(t),'--',t,cos(t))legend('正弦','余弦','Location','Best')二、MATLABGUI基础知识用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标都可成为与计算机交换信息的接口。图形用户界面(GraphicalUserInterfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。也是体现用户综合运用MATLAB的能力。1.控件种类GUI首先是一个窗口(对话框),窗口上除菜单外(菜单专门介绍),控件是一种实现用户与计算机交互的主要途径,利用这些控件可以实现有关控制。这些控件名称如下:(1)按钮(PushButton)11(2)双位按钮(ToggleButton)(3)单选按钮(RadioButton)(4)复选框(CheckBox)(5)列表框(ListBox)(6)弹出框(PopupMenu)(7)编辑框(EditBox)(8)滑动条(Slider)(9)静态文本(StaticText)(10)边框(Frame)2.控件的四个重要属性控件有四个重要属性,它们是:‘style’、‘callback’、‘string’和‘position。(1)style—控件类型。在MATLAB中,控件使用统一函数创建,即uicontrol,控件类型用于区分不同类型的控件。在GUIDE中,该属性自动设置。

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功