Matlab GUI的数据传递——运用GUI本身的varargin和varargout传递参数

Matlab GUI的数据传递——运用GUI本身的varargin和varargout传递参数

1.GUI数据传递指的是GUI各控件之间以及不用的GUI之间,这种方式只适用于GUI与GUI之间的数据传递。

2.关于varargin与varargout的概念

varargin是存储输入参数的可变长cell型数组;

varargout是存储输出参数的可变长cell型数组。

是matlab的输入输出参数数目可变的一种编程模式。

3.通常当我们使用varargin与varargout进行gui间数据传递的时候,利用guidata读取varargin和varargout数据并保存的,即

1.输入参数的设置
%例如当我们需要进行主子结构的GUI数据传递的时候,假设GUI和其子GUI之间进行数据传递。
%其中GUI是主GUI,subGUI是子GUI,其中设想输入输出的参数为
[out1,out2]=subGUI(in1,in2)
%通常在使用GUI设计subGUI时,在其本身m文件中第一行是这种形式
function varargout=subGUI(varargin)
%该行不用做任何修改。之后利用guidata进行数据保存
handles.in1=varargin{1};
handles.in2=varargin{2};
guidata(hObject,handles);

2.输出参数的设置
%在主GUI的Openingfun函数中添加如下代码
[out1 out2]=subGUI(in1,in2)%用于调用子GUI
uiwait(handles.figure1);&figure1是subGUI的tag,为了等待调用子gui的过程,从而获得子gui的输出参数out1和out2.

4.一些说明

在MATLAB GUI中,数据分两种:GUI dataapplication data。 两种数据的存取机制是相同的,但是GUI data使用起来比较方便。
每一个GUI 图形界面都维持一个和自己的界面的图形(figure)相联系的一个handles数据结构,这个数据结构中容纳图形界面内所有控件(按钮、列表框、编辑框等)的句柄,相当于一个大的“容器”,里面存放了figure内所有控件的句柄。同时,handles结构也可以被figure内所有控件的回调函数访问,因为回调函数的输入参数中都有handles结构。此外,在控件的回调函数内可以把数据存储到handles结构中。
handles结构数据的取得和存储是通过guidata函数来实现的。
例如:在编辑框edit的回调函数内想获得编辑框的句柄,hObject可以,也可以用handles.edit,这两个值是一样的,没有区别,只不过获得控件句柄的方式不同而已:hObject是调用回调函数时直接传过来的,handles.edit是从handles结构中取得的。但是,在控件的CreateFcn函数中如果想访问控件,必须用hObject,而不能用handles.edit,因为这时控件还没被创建,其句柄还没有加入到handles结构中。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值