guidata handles理解
先看在一个GUI界面内部的传递的数据
每一个控件的回调函数头:
function myc_Callback(hObject, eventdata, handles)
第一个参数是hObject,是跟这个callback所关联的控件的handles,在它自己的callback下,可以用代号-> hObject 来调用它。。不用管那么麻烦的概念,只用知道,控件自己的回调函数调用自己的属性,只用hObject.属性名 就可以了(中间一点)。
第二个参数是MATLAB的保留参数
第三个handles,是这个GUI界面的代号。可以通过它获取这个界面的所有信息。所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性
------------------------------
handles hObject 都是结构体。正常的编程概念。
handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫做hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据,你只需 handles.控件A的tag 就可以存取控件A的信息。
那我怎么把自己计算出或者别的什么数据放到这个缸里呢?
^_^ 在任何地方
handles.自己的变量名 = 某些值 (其实也就是给结构体添加成员变量)
这样你就定义了自己的变量。
在任何地方
b=handles.自己的变量名 (结构名加点号来引用成员变量)
就可以得到这个变量值,同样也可以修改它。
别忘了使用
guidata(hObject, handles);(不用改,直接黏贴) 在函数末尾来保存你对handles和hObject的操作。(不然你自定义的变量就没了)
传入
那就来看打开一个GUI界面时,传给他的参数有哪些。
function mygui_OpeningFcn(hObject, eventdata, handles, varargin)
所有的启动参数都是通过varargin传到它的OpeningFcn里面的。那启动参数可以是哪些呢?
1、figure,也就是窗口参数。
比如说position之类
例如:打开这个GUI时,使用这个命令 mygui('Position',[434 234 234 34])则表示打开窗口在这个位置;还有哪些可控属性可以查help。
2、自定义参数 。
如果传入的参数不是figure的属性(matlab查找不到你输入的属性名),则你输入的参数作为一个向量存放在varargin里面。
比如mygui('路人甲','80‘),那varargin{1}存放了'路人甲',varargin{2}=’80‘
那mygui中对这读取两个数据进行反应,就达到了传入参数的目的。
传出
那怎么把数据传出来呢?
将你要输出的数据存在handles.output里面
在GUI任意地方
handles.output=数据1;
handles.secend_output=数据2;
然后在GUI的outputFcn里面加上
varaginout{1}=handles.output;
varaginout{2}=handles.secend_output;
这样就把数据传出来了。
看每一个GUI的最外层的那句
function varargout = mygui(varargin) 看输入输出,就是这样了。把GUI本身就是一个函数,
b=mygui(一些传入的参数) 就执行GUI并返回结果
则b就得到了传出来的结果。
guidata handles理解相关推荐
- Matlab大作业-基于GUI制作图像处理工具箱
目录 MATLAB的GUI界面设计: MATLAB通过资源管理器导入图片: MATLAB GUI通过文件管理器保存图片: MATLAB利用摄像头进行截图抓拍并导入: 滤波器部分: 判断图像是否已经灰度 ...
- matlab handles结构体
https://blog.csdn.net/xrdsjb001/article/details/76373984 handles结构体是一个以GUI中所有控件的Tag属性为字段的结构体,每个字段的取值 ...
- matlab中outputpath,关于handles.output_matlab gui参数传递
这就是整个程序(还有一个试验性的窗口,用来调用该窗口).不知道此中有什么毛病. function varargout = userData(varargin) % USERDATA M-file fo ...
- 【元胞自动机】元胞自动机图像处理【含Matlab源码 234期 】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- matlab gui数据类型,MatLab GUI 数据传递
1.数据怎么在不同的控件之间传递 先看在一个GUI界面内部的传递的数据 每一个控件的回调函数头: function myc_Callback(hObject, eventdata, handles) ...
- 用Matlab搭建GUI视频处理工具
用Matlab搭建GUI视频处理工具 一.搭建的基本GUI界面 二.打开视频文件的操作函数 三.获取图像序列函数 四.获取视频信息的函数 五.生成视频文件的函数 六.播放,暂停,停止按钮回调函数 七. ...
- stroop效应matlab实验
1 打开matlab,打开test1.m 点击运行,若出现选择 更改文件夹 2 引导界面 (在这个界面,只许用户鼠标点击开始,其余的别乱按按键. 记得将打字法关掉,切换到小写) 3 做题界面 根据颜 ...
- 运动控制卡应用开发教程之MATLAB
今天,正运动小助手给大家分享一下运动控制卡应用开发教程之MATLAB. 一 ECI2828硬件介绍 ECI2828系列运动控制卡支持多达16 轴直线插补.任意圆弧插补.空间圆弧.螺旋插补.电子凸轮. ...
- matlab中未定义axes1,MATLAB GUI 清除axes图像,显示引用了不存在的字段 'axes1'。
求助大神! 在制作GUI界面时,设置了3个axes,理想情况下,点击"出"按钮,分别在三个axes中显示图形.点击"除",将对应的axes中图形清除.如图1.源 ...
最新文章
- 《C++代码设计与重用》——2.5 浅拷贝和深拷贝
- OkHttp简化请求封装思路
- 转载一篇NAT实验,备忘
- jquery 清空表单
- E - More is better (并查集)
- arm ida 伪代码 安卓 符号表_每天一个IDA小技巧(一): 序言
- geoserver 发布mysql_Geoserver(四) 发布mysql表数据
- R 大数值型数据转换
- 【干货】移动APP测试用例设计实践经验分享
- Word vba 替换
- 辛普森悖论_辛普森悖论如何影响AB测试
- 阿里巴巴校园招聘在线面试之附加题
- OpenCV中的图像基本操作--B站视频教程笔记(四)
- iOS_核心动画(二)
- android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...
- 三国塔防魏传java_三国塔防魏传1.6详细攻略
- 雷军投资“style”:不熟不投 找准“台风口”
- Kubernetes 集群DNS选择:CoreDNS vs Kube-DNS
- 内网安全:隧道技术详解
- PMP考试报名对培训有什么要求?
热门文章
- Opencv简单介绍
- Azure AI 服务之文本翻译
- 零基础入门学习Python(23)--递归:这帮小兔崽子
- lol手游服务器维护到什么时候,lol10.1版本维护到几点 lol维护公告最新2020
- 高防BGP服务器速度怎么样?选用高防BGP服务器需要考虑什么
- c++ 读写 .flo 文件
- 一颗韭菜的自我修养:用Python分析下股市,练练手
- android自动拨号 代码,在Android上,是否有一种方法可以强行自动自动拨号?_android_开发99编程知识库...
- 把握2022消费升级大势,品牌重塑消费者数字体验
- 记一次Electron+vue实现动态打印小票