GUI中不同界面的数据传递问题.txt
- 文档编号:230702
- 上传时间:2022-10-07
- 格式:TXT
- 页数:5
- 大小:6.22KB
GUI中不同界面的数据传递问题.txt
《GUI中不同界面的数据传递问题.txt》由会员分享,可在线阅读,更多相关《GUI中不同界面的数据传递问题.txt(5页珍藏版)》请在冰豆网上搜索。
����������£�
1���������������µ�������pushbutton�ؼ�����Ӧ�������潫��Ҫ���ݵ����ݱ��������¸�ʽ���ݸ��µ���壺�º��������������������Ϳ�������һ����������������
2�����µ�fig�л�ñ����ķ������£����µ�fig���и�OpeningFcn���������Զ����ɵġ������и�����varargin������Ҫ���ݵı���������ֱ����ȡ������
3������Ƕ��������Ҫ���ݣ�����ʹ�ýṹ��ķ�ʽ���ݡ����磺����.a����.b����.c��ȡ��ʱʹ��varargin{1}��varargin{2}��varargin{3}����һһȡ����
��������ҽ���ոս���������е㸴�ӹ��������ܺö���
��������һ��GUI��gui_1,��һ����gui_2,��gui_2�е���gui_1�IJ������߽����
��gui_2�е�buttonCallback������
..................
functionpushbutton1_Callback(hObject,eventdata,handles)
a=gui_1;
.................
��gui_1�Ľ���ʹ��ݵ�a�С�
������˵gui_1�еIJ������룬
��1������ֵֻ��һ�������
��gui_1�еģ�
functiongui_1_OpeningFcn(hObject,eventdata,handles,varargin)
��������һ���ط�����
handles.output=���ݻ��߱�������
...........................
��gui_1�е�
functionvarargout=untitled_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
��ʵ��������.m�ļ����������ģ����ø��ģ�������ݻ��߱�������ͬһ��GUI�б�Ŀؼ���ִ��������ģ������ݻ��߱���������Ϊȫ�ֱ����Ϳ�
global���ݻ��߱�������
ͬʱ��functiongui_1_OpeningFcn(hObject,eventdata,handles,varargin)
��һ�������
global���ݻ��߱�������
������handles.output=���ݻ��߱����������ɡ�
��2������ֵ�ж�����ϵ����
������������ͬ��
functiongui_1_OpeningFcn(hObject,eventdata,handles,varargin)
��������һ���ط�����
handles.output=����1���߱�����1��
handles.secend_output=����2���߱�����2��
handles.thrid_output=����3���߱�����3��
...........................
ͬʱ��
��gui_1��OutputFcn�����������
functionvarargout=gui_1_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
varargout{2}=handles.secend_output;
varargout{3}=handles.thrid_output;
........................
�������ƣ���ͬһ��gui�еIJ������ݲ�������������Ϊȫ�ֱ������ü��ɡ�
ͬʱ�Է���ֵΪ����������gui_2����Ҫ��������Ϊ
��gui_2�е�buttonCallback������
..................
functionpushbutton1_Callback(hObject,eventdata,handles)
[data1,data2,data3,....]=gui_1;
.................
��gui_1�Ľ���ʹ��ݵ�[data1,data2,data3,....]=��,�ֱ����Щ����ֵ���в������ɡ�
�������ϵ����������ܸܺ��ӣ����Ƕ��ڳ�ѧ��һ�������ף���Ҳ�Ǹողſ�ʼѧϰ����֪�����а���û��
�Ƚ��ķ�����^_^
���ӽ��������ֱ��Ū��workspace�����������á�
GUI��Ƚ��ŵķ�����
����figure��handle����������������ݡ�����ľ䷨�ο�guidata��get��set�Լ���handle�йص�help��˵���������ڹر��ӽ���ǰ������ز���get����Ȼ����guidata���������handle������Щ���ݴ浽������handle�Ȼ���������桰�������ߡ���callback����������guidata������Щ��õ���������ͼ��
����ij���Ͳ�д�ˣ��ο�helpӦ��û̫�����⡣
�����ˡ��ҵ��������£�����Gui2����Gui1������IJ�����t=5".
gui1.m�У�������룺
functionpushbutton1_Callback(hObject,eventdata,handles)
data=guidata(gui2);%��ȡgui2�����о��
data.a=get(handles.edit1,'string');������ڽ���gui1�����������
guidata(gui2,data);%������gui1��������ݱ��浽gui2�ľ����
close;
gui2.m�У�������룺
functionpushbutton1_Callback(hObject,eventdata,handles)
gui1
functionpushbutton2_Callback(hObject,eventdata,handles)
guidata(gui2);%��ȡgui2�ľ����Ĭ����handles��
set(handles.edit2,'string',handles.a);
guidata(gui2,handles);%��������
��ǰ�һش�����Ƶ����ӡ�GUI�д��ݲ��������ַ���
һ�־���global��
����һ�֣�ʹ��findall�������Ҷ������磺
findall(0,'tag',...)
����ͨ��workplace�������ݣ�ʹ��assignin��evalin����
����˵�����£�
ASSIGNINAssignvariableinworkspace.
ASSIGNIN(WS,'name',V)assignsthevariable'name'inthe
workspaceWSthevalueV.WScanbeoneof'caller'or'base'.
EVALINEvaluateexpressioninworkspace.
EVALIN(WS,'expression')evaluates'expression'inthecontextof
theworkspaceWS.WScanbe'caller'or'base'.ItissimilartoEVAL
exceptthatyoucancontrolwhichworkspacetheexpressionis
evaluatedin.
[X,Y,Z,...]=EVALIN(WS,'expression')returnsoutputargumentsfrom
theexpression.
�ٸ����ӷ�����⣺
�����figure1�������a1
����ʱassignin('base','a1',data)%data��workplace�еı���
��figure2����ʱa2=evalin('base','data');%a2��figure2�еı���
����matlab�ര�ڵ����ݴ�������
2��GUI����guide���ɡ�����һ��Ϊnormal������main��,��һ��Ϊmodal(sub)������������.
������GUI����subgui������sub�е����ݴ���main��
ʹ����
varargout{1}=handles.output;
varargout{2}=handles.datax;
varargout{3}=handles.datay;
�����ǣ������ϵͳ�۽���subһֱ��sub�еİ�ť��Ӧ��������������������ݣ�
�����Ĵ��ݿ�����һ�µ�˼·���в�������һ���þ����handles�����ݣ��ڶ�����SUB�в��������ݷ��͵�workspace�У�mainȻ���ڴ�workspace��ȥ��ȡ���������������ʵʱ�Ķ����ݽ��в�����������SUB���������ݱ���Ϊһ��*.mat�ļ���mainȻ���ڶ�ȡ����ļ������в����Ĵ��ݡ���ʱ�뵽��Щ�������ʵ�֣����������ٽ�����
matlabGUI�����֮�䴫�����ݵļ���
��matlab��дGUI����ʱ������Ҫ�ܶ�����棬����
figA��figB��figA�е�һ����ť����figB
����Ҫ��figB������һЩ������Ȼ�����Щ����ֵ���ظ�figA�еİ�ť���Ǹ�callbackʱ��
ʹ��setappdata��getappdata����������
��������������������������������������������������������
SETAPPDATA(H,NAME,VALUE)setsapplication-defineddatafor
theobjectwithhandleH.Theapplication-defineddata,
whichiscreatedifitdoesnotalreadyexist,is
assignedaNAMEandaVALUE.VALUEmaybeanything.
Seealsogetappdata,rmappdata,isappdata.
��������������������������������������������������������
H����Ϊ0����ʾmatlab��ȫ�־����������ij�����ڻ��߿ؼ��ľ����
valueΪ������Ҫ���ݵ����ݱ���������ϲ���ýṹ������
nameΪ��ǰfigB�Ĵ����ʶ��Ҳ���Ǵ����tag��
������figB����
spec_data.length=20;
spec_data.weight=200;
setappdata(0,'figB',spec_data);%����
���ϴ������figB������Ҫ�������ò�����callback����
Ȼ����figB��
output�Ǹ�callback
functionvarargout=figB_OutputFcn(hObject,eventdata,handles)
%Getdefaultcommandlineoutputfromhandlesstructure
%**********************returnglobalvarible
%varargout{1}=handles.output;
uiwait(gcf);
h=getappdata(0,'figB');
varargout{1}=h;
ͨ��output�����ȱʡ����varargout�������
��figA����
��������
ret=figB;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GUI 不同 界面 数据 传递 问题