How to pass/share data between GUIs?

5 次查看(过去 30 天)
I am trying to make a GUI that:
1stGUI: enter the number of tasks to run, then click "next" button to open another GUI to run the task.
% --- Executes on button press in Next_Button.
function Next_Button_Callback(hObject, eventdata, handles)
% hObject handle to Next_Button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if get(handles.Num_Task, 'Value') ~= 0
GUI_2
else
errordlg('Input cannot be zero.','Task Num. 0')
end
2ndGUI: run the task for the number of times entered in the 1stGUI.
So the question is, how do I access the "number of tasks" from the 1stGUI within the 2ndGUI, and also, 2ndGUI will run "number of tasks" times, and creates a matrix as the row number is "number of tasks" to store the data.
I read about "guidata", but did not get it to work.

采纳的回答

Geoff Hayes
Geoff Hayes 2019-7-2
编辑:Geoff Hayes 2019-7-2
Peng - please see https://www.mathworks.com/matlabcentral/answers/146215-pass-data-between-gui-s for an example of sharing data between GUIs. Your second GUI will need to be able to find the first GUI (via its tag/name) and then get the handles object for that first GUI.
In the OpenFcn of your second GUI, you could add code similar to
% get the handle of Gui1
h = findobj('Tag','Gui1');
% if exists (not empty)
if ~isempty(h)
% get handles and other user-defined data associated to Gui1
handlesGui1 = guidata(h);
% get the number of tasks
numberOfTasks = get(handlesGui1.Num_Task, 'Value')
end
  3 个评论
Geoff Hayes
Geoff Hayes 2019-7-2
In the Property Inspector for GPEC_Task_Generator, set the HandleVisibility property to on, and confirm that the Tag property is set to GPEC_Task_Generator.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Regression 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by