资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
Matlab GUIDE 使用总结使用总结-Matlab GUI 界面界面(zz) 去年做了一些关于 Matlab GUI 的程序,现在又要做相关 的东西,回想起来,当时很多经验没有记录下来,现在回 顾起来始终觉得不爽,所以从现在开始,一定要勤写记录。从简单的例子说起吧。创建 Matlab GUI 界面通常有两种方式:1,使用 .m 文件直接动态添加控件 2. 使用 GUIDE 快速的生成 GUI 界面显然第二种可视化编辑方法算更适合写大型程序。一:创建一:创建 GUI1.在在 .m 文件中动态添加文件中动态添加例如 h_main=figure(name,a demo of gui design,menubar,none,numbertitle,off,position,100 100 300 100);h_edit=uicontrol(style,edit,backgroundcolor,1 1 1,position,20 20 50 20,.tag,myedit,string,1,horizontalalignment,left);h_but1=uicontrol(style,pushbutton,position,20 50 50 20,string,INC,.callback,v=eval(get(h_edit,string);,.set(h_edit,string,int2str(v+1););h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,.callback,v=eval(get(h_edit,string);,set(h_edit,string ,int2str(v-1););2.使用使用 GUIDE 帮助创建帮助创建 GUI在 Command 里面输入 GUIDE 或者从菜单里面,或者 从快捷按钮均可 进入 GUIDE新建并且保存后,会生成相应的 fig 文件和 m 文件,在 Layout 编辑视图,可以使用如下工具:Layout Editor:布局编辑器; Alignment Tool:对齐工具; Property Inspector:对象属性观察器; Object Browser:对象浏览器; Menu Editor:菜单编辑器。二:使用控件二:使用控件新建一个布局(窗口),可以在新窗口中添加如下控件1静态文本(Static Text) 2编辑框(Edit Text) 控件 3列表框(Listbox)控件 4滚动条(Slider) 控件 5按钮(Push Button)控件 6开关按钮(Toggle Button)控件 7单选按钮(Radio Button)控件 8按钮组 (Button Group)控件 9检查框(Check Box)控件 10列表框 (Listbox)控件 11弹出式菜单(Popup Menu)控件 12坐标轴 (Axes)控件 13面板(Panel)控件每一个控件都有自己的属性常规属性有:一、控件风格和外观(1)BackgroundColor:设置控件背景颜色,使用 R G B或颜色定义。(2)CData:在控件上显示的真彩色图像,使用矩 阵表示。(3)ForegroundColor:文本颜色。(4)String 属性:控件上的文本,以及列表框和弹 出菜单的选项。(5)Visible:控件是否可见。二、对象的常规信息(1)Enable 属性: 表示此控件的使能状态,设置 为 on”,表示可选,为“off”时则表示不可选。(2)Style:控件对象类型。(3)Tag:控件表示(用户定义)。(4)TooltipString 属性:提示信息显示。当鼠标指 针位于此控件上时,显示提示信息。(5)UserData:用户指定数据。(6)Position:控件对象的尺寸和位置。(7)Units:设置控件的位置及大小的单位(8)有关字体的属性,如 FontAngle, FontName 等。三、控件回调函数的执行(1)BusyAction:处理回调函数的中断。有两种选 项:即 Cancel:取消中断事件,queue:排队(默认设 置)。(2)ButtonDownFcn 属性:按钮按下时的处理函 数。(3)CallBack 属性:是连接程序界面整个程序系 统的实质性功能的纽带。该属性值应该为一个可以直接求 值的字符串,在该对象被选中和改变时,系统将自动地对 字符串进行求值。(4)CreateFcn:在对象产生过程中执行的回调函 数。(5)DeleteFcn:删除对象过程中执行的回调函数。(6)Interruptible 属性:指定当前的回调函数在执 行时是否允许中断,去执行其他的函数。四、控件当前状态信息(1)ListboxTop:在列表框中显示的最顶层的字符 串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的当前值。你可以使用属性编辑器来设置属性三:写回调函数三:写回调函数 CallBack 每个控件都有几种回调函数,右键选中的控件一般会有如 下菜单: 然后就可以跳转到相应的 Editor 中编辑代码,GUIDE 会 自动生成 相应的函数体,函数名,名称一般是 控件 Tag+ Call 类型名 参数有三个 ( hObject, eventdata, handles)其中 hObject 为发生事件的源控件,eventdata 为事件数 据结构,handles 为传入的对象句柄CreateFcn 是在控件对象创建的时候发生(一般为初始化 样式,颜色,初始值等) DeleteFcn 实在空间对象被清除的时候发生 ButtonDownFcn 和 KeyPressFcn 分别为鼠标点击和按键 事件 CallbackCallBack 为一般回调函数,因不同的控件而已异。例如 按钮被按下时发生,下拉框改变值时发生,sliderbar 拖 动时发生等等。四:句柄图形之间的层次关系四:句柄图形之间的层次关系可以创建 图形句柄的常见函数1figure 函数:创建一个新的图形对象。 2newplot 函数:做好开始画新图形对象的准备。 3axes 函数:创建坐标轴图形对象。 4line 函数:画线。5patch 函数:填充多边形。 6surface 函数:绘制三维曲面。 7image 函数:显示图片对象。 8uicontrol 函数:生成用户控制图形对象。 9uimenu 函数:生成图形窗口的菜单中层次菜单与下一 级子菜单。几个实用的小函数:uigetfile 选择文件对话框 uiputfile 保存文件对话框 uisetcolor 设置颜色对话框 fontsetcolor 设置字体对话框 msgbox 消息框 warndlg 警告框 helpdlg 消息框不过如果要让父窗口不可用,你需要使用 uiwait 来定焦于 用户对话框。 例如:h=helpdlg(Please press me!,Attention);uiwait(h);四:获取与设置对象属性四:获取与设置对象属性常用函数:常用函数:gcf 函数:获得当前图形窗口的句柄 gca 函数:获得当前坐标轴的句柄 gco 函数:获得当前对象的句柄 gcbo 函数:获得当前正在执行调用的对象的句柄 gcbf 函数:获取包括正在执行调用的对象的图形句柄 delete 函数:删除句柄所对应的图形对象 findobj 函数:查找具有某种属性的图形对象设置方法:设置方法:(1)get 函数返回某些对象属性的当前值。例如:pget(obj,Position); (2)函数 set 改变句柄图形对象属性,例如: set(obj,Position,vect);五:函数调用五:函数调用在一个 m 文件中,可以定义多个函数,但是文件名一定 要与第一个函数(主函数)一致, 该文件中其他函数则为本文件的私有函数,外部不可访问 (可以通过参数调用的方法访问,下面会描述)。例如在一个程序中,创建一个 fig 后,会生成这样一个 m 文件:function varargout =febirdfun(varargin) gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, .gui_Singleton, gui_Singleton, .gui_OpeningFcn, febirdfun_OpeningFcn, .gui_OutputFcn, febirdfun_OutputFcn, .gui_LayoutFcn, , .gui_Callback, );if nargin endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:); elsegui_mainfcn(gui_State, varargin:); end解析 一下这个主函数:首先 gui_State 是一个结构,指 定了 figure 打开和输出函数,开始 gui_CallBack 为空,如果输入参数个数不为 0,接 下来将输入第一个参数传递给 gui_State.callback。接下来用交给 gui_mainfcn 函数处理,gui_mainfcn 根据gui_State 和传入参数 来确定是执子函数,还是打开 fig 文件和运行 OpeningFcn 和 OutputFcn。如过 gui_Callback 为空,那么就运行打开主窗口 fig 文件, 否则,调用子函数这个函数的作用有: 1.当输入不带参数的时候,能够打开 fig 文件,并且初始 化控件 2.当指定需要调用的函数名时,可以作为其他控件 callback 使用 (实则调用同文件中的子函数)例如,在某一个控件的 callback 里面这样写: (febrdfun 为主函数) febirdfun(“push_button_Callback“,gcbf,) 这样的调用就可以调用文件里面的子函数。当然也可以使用其他文件里面的函数作为 callback,不过 那样的话,数据传递会麻烦一些。下面看 figure Openning Function%=function Main_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; % 通常在这里面定义自己的数据结构例如s=struct(“P1“,v1.“P2“,v2); handles.MyStruct=s; % 更新 handles 数据结构 非常重要! guidata(hObject, handles);%= function varargout = Main_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;这个函数是输出返回值的定义注意: matlab 中,function 对应的 end 可以没有,但是 随着版本的更新,end 将会被要求。六:数据传递六:数据传递在 matlab GUI 程序中进行值传递我经常使用的两种方法:1.利用主函
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号