Простая кнопка с изменением текста в MATLAB

Я пытаюсь реализовать очень простой графический интерфейс, состоящий всего из одной кнопки. Я хочу, чтобы это началось с просто СТАРТ в качестве лейбла. Затем при нажатии он меняется на СТОП. Когда пользователь нажимает кнопку в первый раз, обратный вызов устанавливает логическое значение true и изменяет метку. При втором нажатии кнопки логическое значение изменяется на false, и графический интерфейс закрывается.

Я не могу найти ничего о том, как создать такой простой графический интерфейс в MATLAB. инструмент GUIDE для меня не имеет смысла и, кажется, генерирует так много бесполезного кода. Кнопки Matlab - это оболочки для jButtons, как показано здесь


person Matthew Kemnetz    schedule 03.01.2013    source источник


Ответы (1)


GUIDE довольно прост - автоматизированный инструмент генерирует заглушки для всех обратных вызовов, так что остается только заполнить код, который будет выполняться всякий раз, когда выполняется обратный вызов. Если вы предпочитаете создавать графический интерфейс программным способом, вы можете создать нужную кнопку следующим образом:

%# create GUI figure - could set plenty of options here, of course
guiFig = figure;

%# create callback that stores the state in UserData, and picks from
%# one of two choices
choices = {'start','stop'};
cbFunc = @(hObject,eventdata)set(hObject,'UserData',~get(hObject,'UserData'),...
          'string',choices{1+get(hObject,'UserData')});

%# create the button
uicontrol('parent',guiFig,'style','pushbutton',...
          'string','start','callback',cbFunc,'UserData',true,...
          'units','normalized','position',[0.4 0.4 0.2 0.2])
person Jonas    schedule 04.01.2013
comment
Последняя строка для кнопки носит чисто косметический характер, но дает представление о том, как автоматически размещать элементы управления uicontrol. - person Jonas; 04.01.2013