2015-12-07 6 views
1

При использовании GUIDE, в обратном вызове функции, такой какВ РУКОВОДСТВЕ MATLAB, является guidata (hObject) так же, как guidata (handleles.output)?

function checkbox_Callback(hObject, eventdata, handles) 

будет

guidata(hObject) 

и

guidata(handles.output) 

возвращение же структура?

Аналогично, будет

guidata(hObject, handles) 

и

guidata(handles.output, handles) 

сохранить изменения, внесенные в ручках STRUCT к тому же "место"?

Иными словами, используется hObject против handles.output для guidata эквивалент?

handles.output возвращает «рукоятку к основному интерфейсу» - см. http://www.matlabtips.com/guide-me-in-the-guide/.

ответ

1

Да, потому что guidata функция включает следующий вызов

fig = getParentFigure(h) 

, чтобы убедиться, что она работает на фигуре обрабатывать, даже если поставить его с ручкой фигура дочернего элемента (например, флажок ручкой) ,

Структура ручек хранится в данных приложения на фигуре (то есть данные, которые обновляет функция guidata), поэтому последующие обратные вызовы получат вашу обновленную структуру ручек.

0

Они не эквивалентны. В обратном вызове для флажка hObject ссылается на handles.checkbox

дескрипторы - это структура и вывод - это только поле в нем (аналогично флажок - это другое поле в ручках). hObject похож на переменную, которая ссылается на разные поля этой структуры ручек в разных обратных вызовах.