Как получить доступ к объекту графического интерфейса во вложенной функции из базовой рабочей области
Я думаю, что моя проблема в том, что я не знаю, как получить доступ guiel.hAX(3)
свойство в моей функции обратного вызова кнопки, где я положил kiddies = get(guiel.hAX(3),'Children');
Я получил ошибку:
Undefined variable "guiel" or class "guiel.hAX".
Error in showTF/callback_update_model (line 508)
kiddies = get(guiel.hAX(3),'Children');
Моя вложенная функция для обратного вызова кнопки:
function callback_update_model(~,~)
vars.dropheight = str2num(get(edit(2),'String'));
vars.armradius = str2num(get(edit(1),'String'));
kiddies = get(guiel.hAX(3),'Children');
delete(kiddies);
clear kiddies;
set(guiel.tfPanel,'Visible','off','Position',cnst.tfPanelpos);
set(guiel.hAX(1),'Position',cnst.axpos1);
if ishandle(guiel.hAX(2))
set(guiel.hAX(2),'Position',cnst.axpos2);
end
eval(get(guiel.hPB(4),'Callback'));
end
Я инициализирую переменные в другом mfile
guiel.hAX(1) = -1;
guiel.hAX(2) = -1;
guiel.hAX(3) = -1;
guiel.tfPanel = -1;
...
guiel.hAX(3) = axes('Parent',guiel.tfPanel,'Color',cnst.OFFWHITE,'Layer',...
'top','Xlim',[0 1],'YLim',[0 1],'GridLineStyle','none','Units','Normalized',...
'XTick',[],'YTick',[],'Box','off','Visible','off','Position',cnst.axpos3);
0 ответов
Чтобы сделать данные доступными в обратных вызовах, вы можете сохранить данные в свойстве UserData рисунка. Если ваш дескриптор фигуры - h_fig, вы должны использовать такой код для хранения данных на рисунке:
set(h_fig, 'UserData', guiel)
В обратном вызове вы можете использовать функцию gcbo, чтобы получить дескриптор рисунка, затем извлечь данные пользователя, используя такой код:
[~, h_fig] = gcbo;
guiel = get(h_fig, 'UserData')