Matlab GUI中的hObject与handles

①如果把figure对象当做一个大缸,把其它的对象如axes,button等当做这个大缸里的小缸,那么handles就相当于这个大缸的句柄,可以用大缸的句柄来设置小缸的属性,例如handles.pushbutton。hObject就相当于每个小缸的句柄了,可以直接再相应控件的function后面加set(hObject,‘propertyp’,‘value’);
②handles和hObject都“句柄”,储存了它所代表的“那个对象”的信息;只不过handles代表的是当前整个界面,hObject代表的是当前的这个空间(e.g. 按钮,编辑框);
③hObject是当前控件的句柄,handles包含了整个程序所有的句柄。在当前空间的callback里可以用hObject,也可以用handles.*;在别的控件的callback里可以用handles. * 来调用别的空间的句柄;
④在Matlab GUI中,数据分为两种:GUI data和application data。两种数据的存取机制是相同的,但是GUI data使用起来比较方便。每一个GUI图形界面都维持一个和自己的界面的图形(figure)相联系的一个handles数据结构,这个数据结构中容纳图形界面内所有控件(按钮、列表框、编辑框等)的句柄,相当于一个大的“容器”,里面存放了figure内所有控件的句柄。同时,handles结构也可以被figure内所有控件的回调函数访问,因为回调函数的输入参数中都有handles结构。此外,在控件的回调函数内可以把数据存到handles结构中。
handles结构数据的取得和存储是通过guidata函数来实现的;
e.g. 在编辑框edit的回调函数内想获得编辑框的句柄,hObject 可以,也可以用handles.edit,这两个值是一样的,没有区别,只不过获得控件句柄的方式不同而已;hObject是调用回调函数时直接传递过来的,handles.edi是从handles结构中获取的。但,在控件的creatfcn函数中,如果想要访问控件,必须用hObject,而不能用handles.edit,因为此时控件还没被创建,其句柄还没加入到handles结构中。
各个控件的回调函数中,hObject的值是不一样的,分别代表调用回调函数的控件的句柄,而handles结构却是一样的。这种机制便于figure内的不同控件的回调函数内传递数据;
⑤h:指回调函数被调用对象的句柄;handles:是包含GUI中所有组件句柄的结构体,该结构体的域名由对象的tag属性定义。也可以用来传递数据给其它的回调函数和主程序。
e.g. :创建一个包含button的GUI,button的tag属性设为pushbutton1,GUIDE在应用程序,M文件中生成如下回调函数:
functionpushbutton1_callback(h,evendata,handles,varargin)然后设置button的callback
mygui(‘pushbutton1_callback’,gcbo,[],guidata(gcbo))其中:mygui:FIG文件名。pushbutton1_callback:回调函数名。gcbo:返回按钮句柄;[]:空矩阵;guidata(gcbo):从图形窗口的应用程序数据中获得句柄结构体。

Matlab GUI中的hObjecthandles相关推荐

  1. 8. 修改matlab GUI中fig和m文件名修改流程及注意事项

    资料来源: 修改matlab GUI中fig和m文件名修改流程及注意事项 - CSDN博客 https://blog.csdn.net/xingkongfenqi/article/details/46 ...

  2. lsdyna如何设置set中的node_list_如何在Matlab GUI中播放带声音的视频?

    各位同学好,各位知乎的小伙伴们大家好.今天,我要给大家分享的内容是:"如何在Matlab GUI中播放带声音的视频?" 这个问题有点奇怪,什么叫做带声音的视频?视频一般不都是带声音 ...

  3. matlab中med是什么意思,matlab GUI中使用中值滤波medfilt2 的问题

    本帖最后由 NorthLion 于 2015-8-31 09:55 编辑 问题已经解决了,谢谢! matlab GUI读取一张图片.在test3_axes1显示,对这张图片进行中值滤波并在test3_ ...

  4. 在matlab gui中播放视频的方法

    这个项目仅仅作为gui播放视频的验证 视频文件前处理:讲要播放的视频用视频剪辑软件调整到合适的时长,注意这个视频的时长不是在gui界面上的播放时长,因为imshow函数会有可观的运行时间,导致在gui ...

  5. 一种较方便的MATLAB GUI中popupmenu中选取值得获得方法

    matlab的GUI编程中Popupmenu是比较常用的一种控件,如何将popupmenu的选取值读取出来?其中有点陷阱需要注意.正确的方法应该如下: list=get(handles.popupme ...

  6. matlab gui 中指定axes窗口画进度条

    转自:http://www.ilovematlab.cn/thread-61732-1-1.html 当matlab 的gui中有多个axes窗口时,指定一个axes窗口作为进度条窗口 functio ...

  7. matlab gui从模型里获取参数程序,matlab gui 中参数传递的问题

    用m文件建GUI界面,在inputbutton 中输入数据,传递给outputbutton,利用该数据.为什么总显示参数不够错误? 错误提示如下: Fresnel_GUI1 输入参数的数目不足. 出错 ...

  8. matlab静态文本框显示,如何在Matlab GUI中利用静态文本框显示程序的结果

    www.mh456.com防采集. 调用2113pushbutton的回调函数,再用set让结构在5261文本框中显示.给4102一个简单的例1653子:内pushbutton的回调函数(实现两容个数 ...

  9. matlab gui做输入,用户在matlab GUI中的输入

    大家好, 我正在创建一个GUI,在那里有一个编辑框,等待用户写一个名字. 目前,我强制用户使用此代码提供合法名称: NewPNUName = get(handles.nameOfNewPNU, 'St ...

最新文章

  1. zabbix snmp 协议监控 dell iRDAC
  2. QT的QItemModelBarDataProxy类的使用
  3. vue2.0 如何自定义组件(vue组件的封装)
  4. java list 去除 重复值
  5. linux怎样重启命令,Linux重启命令介绍
  6. teechart的addarray_【TeeChart Pro ActiveX教程】(六):使用系列(下)
  7. PMP考试心得分享(已通过)
  8. android dagger2 单例,Dagger2进阶-单例
  9. MATLAB绘制开环单位阶跃响应,MATLAB语言与控制系统仿真-参考 答案-第5章.doc
  10. 洛谷 P3975 [TJOI2015]弦论 解题报告
  11. 微软展示Windows 8新LOGO:倾斜纯蓝色窗口
  12. 阿里云云效平台提交代码
  13. 1 - 基于卡方检验的特征选择
  14. 问题记录:键盘win键无法使用,组合键无反应,win+L不能锁屏
  15. 国内硕士申请加拿大计算机博士难度,加拿大硕士申请博士容易吗?单单成绩优异是不够的...
  16. 前端培训一般要多少钱
  17. 查错秘籍—PHP大法
  18. Conflux 进阶课 | 初始阶段通证发行数量
  19. Arcpy的制图模块
  20. Eclipse中,代码没错,但有红叉叉

热门文章

  1. 模糊数学学习笔记 6:模糊综合评判
  2. 【python】抓小偷
  3. 张坤 2012.5.4 sed去掉所有的HTML标签
  4. js控制URL地址的改变,以微信服务号的授权获取用户的昵称和头像为例
  5. 给激光打印机的粉盒装粉
  6. Launcher功能入口
  7. html怎么创建盒子,html布局(盒子)
  8. 小实践之网络打印机的设置(实际操作篇)
  9. Ahrefs 和 SEMrush 对比--哪个是最好的工具
  10. 固定table中的TH的高度和TD的宽度