MATLAB Gui, значение текстового поля при нажатии кнопки без GUIDE - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть определенный GUI, созданный без GUIDE, просто старые uicontrols, и до сих пор я получил все для правильной работы.Однако я хочу, чтобы при нажатии кнопки захватить значение в текстовом поле (редактировать) и сохранить его в переменной fi.

В основном рассматриваемый код;

c2 = uicontrol(f,'Style', 'pushbutton','String','Rotation','Callback', 
@rotation);
s1 = uicontrol(f,'Style', 'edit');

function rotation(src,event)
   load 'BatMan.mat' X
   fi = %This is the value I want to have the value as the edit box.
   subplot(2,2,1)
   PlotFigure(X)
end

1 Ответ

0 голосов
/ 17 ноября 2018

Проще всего получить rotation, чтобы узнать о s1 через входной аргумент:

c2 = uicontrol(f,'Style', 'pushbutton','String','Rotation');
s1 = uicontrol(f,'Style', 'edit');
set(c2,'Callback',@(src,event)rotation(s1,src,event));

function rotation(s1,src,event)
   load 'BatMan.mat' X
   fi = get(s1,'String');
   subplot(2,2,1)
   PlotFigure(X)
end

Здесь мы устанавливаем обратный вызов для c2 как анонимную функцию с правильной сигнатурой (2 входных аргумента), и который вызывает rotation с s1 в качестве дополнительного аргумента.Обратный вызов теперь имеет встроенный дескриптор s1.

...