MATLABGUI设计基础和经验谈

上传人:wuli****0220 文档编号:245740347 上传时间:2024-10-10 格式:PPTX 页数:27 大小:568.83KB
返回 下载 相关 举报
MATLABGUI设计基础和经验谈_第1页
第1页 / 共27页
MATLABGUI设计基础和经验谈_第2页
第2页 / 共27页
MATLABGUI设计基础和经验谈_第3页
第3页 / 共27页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2013/6/20,#,MATLAB GUI,设计简述,提纲,MATLAB GUI,设计基础,GUI,设计的一些,tips,ADVISOR,软件给我的营养,GUI,图形用户界面,(,GUI,,,Graphical User Interface,),是指由窗口、菜单、,图标、光标、按键,、对话框,和文本,等各种,图形对象,组成的用户界面。,它让用户定制用户与,Matlab,的交互方式,而命令窗口不是唯一与,Matlab,的交互方式,。,MATLAB,提供了两种创建图形用户接口的方法:通过,GUI,向导(,GUIDE,),创建,的方法和,编程创建,GUI,的方法,。,MATLAB的图形用户界面程序大多数是对话框应用程序,,利用,MATLAB,编写文档视图应用程序相对来说比较困难。,图形句柄入门,每一个图形元件视为一个对象,Object,Object,都有一个,独一无二,的句柄,Handle,图形句柄的具体层次,常用的图形句柄操作函数,在MATLAB中,只要获得了图形对象的句柄,就可以通过对属性的操作来修改图形对象的外观,这也是MATLAB图形用户界面编程的基本原理。,下面的语句中,,findobj,具有最大的通用性和实用性,适合操作,UI,控件和图形对象。,句柄在一般绘图中的应用,在,MATLAB命令行窗口中,键入下面的指令:,X=linspace(-pi,pi,25);,Y=sin(X);,plot(X,Y,rX);,获取当前的曲线对象句柄:,h_line=findobj(gca,Marker,X),h_line=,3.0011,重要语句,,set,与,get,h_line_parent=get(h_line,Parent);,set(h_line,Color,1 1 1,MarkerSize,10);,无论是利用GUIDE还是图形句柄来创建图形用户界面,其基本过程都是首先获取当前的图形对象句柄,然后利用get函数获取一些属性获取动作,再通过set函数设置一些属性完成响应,。,在,MATLAB,平常的使用中,也可以充分利用句柄,h=plot,(.),h,即为句柄,一般在绘图时只是把图形属性放在括号内,实际上使用,set,与,h,相结合的方法进行属性调整更加灵活。,x=-pi:.1:pi;,y=sin(x);,p=plot(x,y),set(p,Color,red,LineWidth,2),GUIDE工具入门,GUIDE,Graphic User Interface Development,Environment,在MATLAB中启动GUIDE的方法是在MATLAB命令行中键入指令:,guide,或者通过“Start”菜单选择“MATLAB”下的“GUIDE”命令,。,空白界面(Black GUI)。,具有,图形控件的界面(GUI With Uicontrols)。,具有,菜单和坐标轴的界面(GUI With Axes and Menu)。,模式,对话框(Modal Question Dialog)。,GUI,设计步骤,1.,进行,界面设计,。对,界面空间的布局、控件的大小等进行,设计,。,2.,利用,GUIDE的外观编辑功能,将必要的控件依次绘制在界面的“画布”上,。,3.,设置,控件的属性,这一步骤重点需要设置控件重要的属性值,例如控件的回调函数、标签和显示的文本等。,4.,针对,不同的控件需要完成的功能进行M语言编程。,放置图形用户界面的控件,创建,菜单,创建菜单,创建菜单可以通过菜单编辑器完成。,设置对象属性,String,属性和Tag,属性,String,为,显示在控件上的文本,,Tag相当于,为控件取个,名字,(与句柄一一对应)。,设置属性,可以使用GUIDE的属性察看器和控件浏览器完成,。,在设置图形界面对象的Tag属性时,建议按照如下的格式进行设置:objectstyleObject-Function,即使用表示对象类型的字符串作为Tag属性的前缀,这样在编写控件回调函数时,能够直接从控件的名称上判断控件的类型,便于程序的管理和维护。,编写回调函数,MATLAB图形用户界面控件的回调函数,是指在界面控件被选中的时候,响应动作的M语言函数。在回调函数中,一般需要完成如下,功能:,(实际上是,get,和,set,两个动作):,*获取发出动作的对象句柄。,*根据发出的动作,设置影响的对象属性。,一般,地,回调函数的声明为,function object_Callback(hObject,eventData,handles),其中,:,object,为发生事件的控件的Tag属性字符串。,hObject,为发生事件的控件的句柄。,eventData,为保留字段,目前版本的MATLAB还暂时不使用。,handles,为一个,结构,体,,,这个结构中包含所有界面上控件的Tag属性值,还可以添加用户自己的数据。,常用对话框,提纲,MATLAB GUI,设计基础,GUI,设计的一些,tips,ADVISOR,软件给我的营养,Handles,结构体,handles结构中包含了所有图形界面上控件的Tag属性值(也就是句柄),同时还能够完成在不同的回调函数之间共享用户数据的功能,。在,GUIDE创建的M函数文件中,若修改了handles结构,则需要通过guiddata函数将handles的结构保存起来,只有这样才能够通过handles结构将不同的用户数据传递到相应的子函数中,。,guidata,主要,用来在图形用户界面中存储或者获取用户数据,它的基本语法为,*存储数据:guidata(object_handle,data)。,*获取数据:data=guidata(object_handle),。,如果程序较大,则不适合用,handles,结构体传递数据,考虑用其他方式,。,Units,和,Position,属性,确定各个对象的单位和位置,units,pixels,inches,normalized,points,characters,centimeters,Position,左,底,宽,高,根据不同的使用情况决定使用哪一种,unit,;,在设计有嵌套的界面时用,normalized,较好(利于进行整体移动);,初期设计时一般直接拖动控件,不需要精确地设定参数,在整体位置基本确定后再具体设定位置参数。,合理使用工具栏中的对齐工具。,Opening,函数,在,GUI,开始运行但还不可见的时候执行,主要进行一些初始化操作。,function simple_gui_OpeningFcn(hObject,eventdata,handles,varargin),handles.peaks=peaks(35);,handles.membrane=membrane;,x,y=meshgrid(-8:.5:8);,r=sqrt(x.2+y.2)+eps;,sinc=sin(r)./r;,handles.sinc=sinc;,handles.current_data=handles.peaks;,surf(handles.current_data),handles.output=hObject;,guidata(hObject,handles);,最后两句为必不可少。,与,opening,函数类似的是普通控件的,CreateFcn,(有的控件有这个属性,有的没有),同样是界面开始运行时执行。,常用函数总结,get,:,get(h),或,a=get(h);get(h,PropertyName),set,reset,:,a=set(h);set(h,PropertyName,PropertyValue,),;,reset(h),gcf(get current figure),gca,gco,gcbf,gcbo,f,indobj,:h=findobj;h=findobj(P1,V1,-logical,P2,V2),o,bj handles=findall(h list,p,value,),allchild,ancestor,Copyobj,delete,clf,cla,close,王牌组合是,set(findobj(tag,xxx),proper,xx),,在界面设计中非常有效。,提纲,MATLAB GUI,设计基础,GUI,设计的一些,tips,ADVISOR,软件给我的营养,ADVISOR,的可借鉴之处,程序构架,1,)程序输入文本在,MATLAB,基本工作空间中定义变量并调用其他程序输入,文本,2,)静态(动态)仿真模型为一系列,MATLAB,文本文件组成的程序,根据程序输入文本输入的数据,利用仿真模型计算得到程序的输出。,3,)程序输出文本的作用是通过读取,MATLAB,基本工作空间中的数据对程序进行后处理,。,4,)程序控制文本对程序输入和程序输出进行管理。,关键,在于程序控制文本,它是软件的骨架。其余部分围绕程序控制文本展开。软件运算和仿真结果的好坏取决于静态(动态)仿真模型的精确程度。,ADVISOR,数据传递的具体方法,一个全局变量,vinf,储存重要信息(,global vinf,,,全局变量慎用),units:us,optionlist,:1x1 struct,name,:PARALLEL_defaults_in,drivetrain,:1x1 struct,fuel_converter,:1x1 struct,这里的,vinf,作用类似一般程序中的,handles,,但使用更为灵活。通常,vinf,保存在,base,中,需要的时候就在程序中运行,global vinf,命令,使用结束之后,vinf,将自动更新(涉及数据安全问题,如果使用不慎容易引起数据错误),数据传递的具体方法,所有的运算和仿真在,base,中运行,便于调试,也便于控制传递的参数数量(函数的参数变少),使用,assignin,和,evalin,在函数和,base,中,通信,assignin,(base,imfile,imfile);,将参数,imfile,存入,base,中,var,=evalin,(base,var);,将,base,中的参数读入函数空间,另外,,save,和,load,可以实现类似的功能,但是这两者一般用作,mat,文件的存取,不建议在这里使用。,编程中的其他,tips,容错设计的惯常方式,try,statements,catch,disp(,mfilename,:xxxx_pushbutton_Callback,Error!),disp(lasterr),dbstack,end,优点,是出错可以退出程序并且能指出出错位置。,与,GUI,无关的编程,tips,此处略去。,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!