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.
0 个评论
采纳的回答
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
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 Center 和 File Exchange 中查找有关 Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!