ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:274.23KB ,
资源ID:1382138      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1382138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlabGUI设计的控件使用.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

matlabGUI设计的控件使用.docx

1、matlabGUI设计的控件使用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,non

2、e, 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)

3、;);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 Insp

4、ector:对象属性观察器;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)控

5、件13面板(Panel)控件每一个控件都有自己的属性常规属性有: 一、控件风格和外观 (1)BackgroundColor:设置控件背景颜色,使用R G B或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用矩阵表示。 (3)ForegroundColor:文本颜色。 (4)String属性:控件上的文本,以及列表框和弹出菜单的选项。 (5)Visible:控件是否可见。 二、对象的常规信息 (1)Enable属性: 表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。 (2)Style:控件对象类型。 (3)Tag:控件表示(用户定义)。 (4)Tooltip

6、String属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。 (5)UserData:用户指定数据。 (6)Position:控件对象的尺寸和位置。 (7)Units:设置控件的位置及大小的单位 (8)有关字体的属性,如 FontAngle, FontName等。 三、控件回调函数的执行 (1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。 (2)ButtonDownFcn属性:按钮按下时的处理函数。 (3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,

7、在该对象被选中和改变时,系统将自动地对字符串进行求值。 (4)CreateFcn:在对象产生过程中执行的回调函数。 (5)DeleteFcn:删除对象过程中执行的回调函数。 (6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。 四、控件当前状态信息 (1)ListboxTop:在列表框中显示的最顶层的字符串的索引。 (2)Max:最大值。 (3)Min:最小值。 (4)Value:控件的当前值。你可以使用属性编辑器来设置属性三:写回调函数 CallBack每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:然后就可以跳转到相应的 Editor中

8、编辑代码,GUIDE会自动生成 相应的函数体,函数名,名称一般是 控件 Tag+ Call类型名 参数有三个 ( hObject, eventdata, handles)其中 hObject 为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等)DeleteFcn 实在空间对象被清除的时候发生ButtonDownFcn和KeyPressFcn分别为鼠标点击和按键事件CallbackCallBack为一般回调函数,因不同的控件而已异。例如按钮被按下时发生,下拉框改变值时发生,slide

9、rbar 拖动时发生等等。四:句柄图形之间的层次关系可以创建 图形句柄的常见函数1figure函数:创建一个新的图形对象。2newplot函数:做好开始画新图形对象的准备。3axes函数:创建坐标轴图形对象。4line函数:画线。5patch函数:填充多边形。6surface函数:绘制三维曲面。7image函数:显示图片对象。8uicontrol函数:生成用户控制图形对象。9uimenu函数:生成图形窗口的菜单中层次菜单与下一级子菜单。几个实用的小函数:uigetfile 选择文件对话框uiputfile 保存文件对话框uisetcolor 设置颜色对话框fontsetcolor 设置字体对话

10、框msgbox 消息框warndlg 警告框helpdlg 消息框不过如果要让父窗口不可用,你需要使用uiwait来定焦于用户对话框。例如: h=helpdlg(Please press me!,Attention); uiwait(h);四:获取与设置对象属性常用函数:gcf函数:获得当前图形窗口的句柄gca函数:获得当前坐标轴的句柄gco函数:获得当前对象的句柄gcbo函数:获得当前正在执行调用的对象的句柄gcbf函数:获取包括正在执行调用的对象的图形句柄delete函数:删除句柄所对应的图形对象findobj函数:查找具有某种属性的图形对象设置方法:(1)get函数返回某些对象属性的当前

11、值。例如: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_Singlet

12、on, gui_Singleton, . gui_OpeningFcn, febirdfun_OpeningFcn, . gui_OutputFcn, febirdfun_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_S

13、tate, 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文件,并

14、且初始化控件2.当指定需要调用的函数名时,可以作为其他控件callback使用 (实则调用同文件中的子函数) 例如,在某一个控件的 callback 里面这样写:(febrdfun为主函数)febirdfun(push_button_Callback,gcbf,)这样的调用就可以调用文件里面的子函数。当然也可以使用其他文件里面的函数作为callback,不过那样的话,数据传递会麻烦一些。下面看figure Openning Function%=function Main_OpeningFcn(hObject, eventdata, handles, varargin)handles.outpu

15、t = 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程序

16、中进行值传递我经常使用的两种方法:1.利用主函数 的 handles 数据结构传值例如在某一个图像窗口句柄 中有一个对象 handles(可以定义自己的数据结构)那么在一个子Callback函数中,可以通过handles传递数据:function sliderbar1_Callback(hObject,eventdata,handles)% eg1v1=get(hObject,value);obj=handles.Text1 %直接定位 Tag 为 Text1的控件set(obj,value,v1);% eg2handles.MyStruct.P1=v1; % 更改handles中的数据gui

17、data(hObject,handles); %更新 handles !重要end2.利用控件的 UserData 来传值每一个控件一般都有一个属于自己的自定义域,userData,你可以定义这样一个域用来保存自己的数据,例如在定义 timer 的 TimerFcn中t1=timer(TimerFcn,Timer1Fcn,ErrorFcn,Timer1ErrorFcn,Period,1.0,ExecutionMode,fixedrate);t1.Userfata=handles.MyStruct;这里 Timer1Fcn的调用看似没有传入任何参数,实际上此函数的定义一定要有至少两个参数function Timer1Fcn(obj,eventata) obj.UserData=XXXXX;%可以这样共享数据end当然Timer定义的时候允许这样传递一个参数,当然这样也可以进行传值.t1=timer(TimerFcn,Timer1Fcn,handles,ErrorFcn,Timer1ErroFcnr,handles,Period,1.0,ExecutionMode,fixedrate);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2