Matlab GUI 程序编制技巧.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab GUI 程序编制技巧

Matlab GUI 程序编制技巧 确定界面启动的初始态 编制界面最好的方法是在GUIDE里绘制,完成后存盘会自动生成“文件名.fig”和“文件名.m”文件,前者存储了界面的各项参数,如大小、菜单、控件等;后者是一个自动生成的调用参数的脚本文件,在界面中的每一个控件和菜单都有相应的回调函数,所需要的运行程序都填写在这些回调函数中。 一般每一个界面的启动状态在GUIDE里绘制完成,它们的参数存储在“文件名.fig”文件中。但有时需要在启动时运行某些程序,如在截面上显示一幅图像,并进行某些处理等,这些代码就要写在“文件名_OpeningFcn (hObject, eventdata, handles, varargin)”函数中。 从界面读取数据 从界面的控件中读取数据的基本格式为: get(findobj(gcf,Tag,控件名),属性); 其中的findobj函数用于寻找特定的控件,该控件的“Tag”属性为后面的字符串。 对控件的属性进行设置的基本格式为: set(findobj(gcf,Tag,控件名),属性,属性值); 当要对界面本身的属性进行操作时,用 get(gcf,属性); 和 set(gcf,属性,属性值); 比如要把一个变量a存入界面的UserData中,用 set(gcf,UserData,a); 不同界面间变量空间的切换和数据的传递 有时一个程序不止一个界面,而且要在几个界面间切换,但它们的变量在不同的空间中,不能通用,因为每当调用一个界面函数,都会进入一个新的变量空间。解决的办法是利用界面和控件的’UserData’属性在界面的转换过程中传递界面的句柄和变量。 如一个主界面imagmatching2调用参数设置界面paracall2,为了在调用完之后,程序可以返回主界面(连同新的变量),必须将主界面的句柄作为参数传递给设置界面函数。如主界面中负责调用的控件为“pushbutton12”按钮(在该控件的属性Tag中可以看到),则在它的回调函数中要有如下代码: function pushbutton12_Callback(hObject, eventdata, handles) % hObject handle to pushbutton12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handle1=gcf; paracall2(handle1); 代码的前几行注释是系统自动加的。后面的两行表示取当前界面的句柄并作为参数来调用参数设置界面。 在参数设置界面的文件paracall2.m中,在它的“paracall2_OpeningFcn(hObject, eventdata, handles, varargin)”回调函数中加上以下两行: handle1=varargin{1}; set(gcf,UserData,handle1); 这样就把前一个界面(imagmatching2)的句柄传递到了该界面的变量空间中,并存储到该界面的’UserData’中。 要从当前界面(paracall2)返回前一界面并带回已设定好的参数变量,也用类似的办法。如负责返回的控件为“pushbutton3”按钮,则在它的回调函数中要加入: function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) evaluate; handle1=get(gcf,UserData); set(handle1,UserData,matper); close; 第一行“evaluate;”为设置参数的过程。后面两行是将参数变量传递回前一个界面的变量空间中,其中的“matper”为存储所有要传递的变量的元胞数组,它被置于前一界面的’UserData’中。最后一行表示关闭该界面。 因此,在不同界面(也就是不同函数,拥有不同的变量空间)中传递信息的主要方法是利用图像和控件的’UserData’属性,它可以存储任何形式的变量。一个界面调用另一个界面后返回,基本方法是: 将前一界面的句柄保存在后一界面的’Use

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档