Я новичок в программировании графического интерфейса для MATLAB, поэтому мой вопрос относится к этому.
Допустим, я создаю графический интерфейс с помощью GUIDE. В функции создания
MyGUI_OpeningFcn(hObject, eventdata, handles, varargin)
Я вызываю другую функцию,
SamplingRate_Callback(handles.SamplingRate, eventdata, handles)
определяется как
function SamplingRate_Callback(hObject, eventdata, handles)
SamplingRate_Callback устанавливает несколько переменных,
handles.a = 1;
handles.b = 2;
handles.c = 3;
Структура handles
правильно обновляется в функции SamplingRate_Callback
. Проблема, с которой я сталкиваюсь, заключается в том, что если я не изменю функцию на
function handles = SamplingRate_Callback(hObject, eventdata, handles),
Я не могу вернуть данные вызывающей функции MyGUI_OpeningFcn
. Я пробовал использовать guidata(gcf, handles)
и guidata(hObject, handles)
, но ни один из них не работает.
Не могли бы вы пролить свет на эту проблему?
Кроме того, я не уверен, когда использовать guidata(gcf, handles)
против guidata(hObject, handles)
.
Спасибо за вашу помощь!