2013-01-03 12 views
6

Próbuję zaimplementować bardzo prosty GUI, który składa się z tylko jednego przycisku. Chcę, aby zaczynało się od posiadania START'a jako etykiety. Następnie naciśnij przycisk zmienia się na STOP. Gdy użytkownik kliknie przycisk po raz pierwszy, wywołanie zwrotne ustawia wartość logiczną na true i zmienia etykietę. Po kliknięciu przycisku po raz drugi wartość boolowska zmieni się na false i GUI zostanie zamknięty.Prosty przycisk push ze zmieniającym się tekstem w MATLAB

Nie mogę znaleźć niczego, jak zrobić prosty GUI w ten sposób w MATLAB. narzędzie GUIDE nie ma dla mnie sensu i wydaje się generować tyle bezużytecznego kodu. Przyciski Matlab są owijkami dla jButtons, jak widać here

Odpowiedz

4

PRZEWODNIK jest dość prosty - zautomatyzowane narzędzie generuje kody pośrednie dla wszystkich wywołań zwrotnych, więc pozostało tylko wypełnienie kodu, który będzie wykonywany za każdym razem, gdy uruchomi się wywołanie zwrotne. Jeśli wolisz, aby utworzyć GUI programowo, można utworzyć przycisk, który chcesz następująco:

%# 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]) 
+0

Ostatnia linia dla przycisku jest jedynie kosmetyczne, ale daje pojęcie o tym, jak automatycznie uicontrols pozycyjnych. – Jonas

Powiązane problemy