Я новичок в программировании GUI для MATLAB, поэтому мой вопрос связан с этим.Matlab: получение значения дескриптора GUI из функции обратного вызова при вызове другой функцией
Предположим, что я создаю GUI с 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
ул ructure правильно обновляется в функции SamplingRate_Callback
. Проблема, которую я имею, что если я не изменить функцию
function handles = SamplingRate_Callback(hObject, eventdata, handles),
Я не могу вернуть данные в вызывающую функцию, MyGUI_OpeningFcn
. Я пробовал использовать guidata(gcf, handles)
и guidata(hObject, handles)
, но не работает.
Вы могли бы пролить свет на эту проблему?
Кроме того, я не уверен, когда следует использовать guidata(gcf, handles)
против guidata(hObject, handles)
.
Благодарим за помощь!
Hi nrz, спасибо за ваш ответ. Да, это сработает. Думаю, я не понимаю, почему, когда SamplingRate_Callback вызывается непосредственно с помощью его элемента GUI, вы можете просто сохранить постоянные значения дескриптора, используя guidata, но если вы вызовете одну и ту же функцию другим способом, guidata не будет работать. Имеет ли это смысл? Ты знаешь почему? – user1340654