Matlab GUI与GUI间数据传递实现
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/mvpyao/article/details/109437098
1.首先打开guide,新建两个空白gui如下图
(其中guidata_test1是子GUI,guidata_test2是主GUI)
2.在guidata_test1的OutputFcn即guidata_test1_OutputFcn中加入如下代码:
%将两个edit的string传递到主gui中,因此将两个edit的数据拿出来
handles.out1=get(handles.edit1,'string');%edit1的string存储在handles.out1
handles.out2=get(handles.edit2,'string');%edit2的string存储在handles.out2
varargout{1}=handles.out1;%将二者传递出去
varargout{2}=handles.out2;%将二者传递出去
3.在主GUI中调用子GUI,在这个实验中是通过按钮来调用的,当按钮按下,弹出子GUI,因此在pushbutton的callback函数中加入如下代码,实现对子GUI 的调用。
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[out1,out2]=guidata_test1();
dataout=str2num(out1)+str2num(out2);
dataout=num2str(dataout);
set(handles.edit1,'string',dataout);