2013-01-03 4 views
6

Sto cercando di implementare un'interfaccia grafica molto semplice composta da un solo pulsante. Voglio iniziare cominciando con START come etichetta. Quindi, premere per passare a STOP. Quando l'utente fa clic sul pulsante la prima volta che la callback imposta un valore booleano su true e modifica l'etichetta. Quando si fa clic sul pulsante una seconda volta, il valore booleano viene modificato in falso e la GUI si chiude.Pulsante semplice con cambio di testo in MATLAB

Non riesco a trovare nulla su come realizzare una semplice GUI come questa in MATLAB. lo strumento GUIDE non ha senso per me e sembra generare così tanto codice inutile. I pulsanti Matlab sono wrapper per jButton come visto here

risposta

4

GUIDA è abbastanza semplice: lo strumento automatico genera gli stub per tutte le richiamate, in modo che tutto ciò che resta è compilare il codice da eseguire ogni volta che viene eseguito il callback. Se si preferisce creare l'interfaccia grafica di programmazione, è possibile creare il pulsante che si desidera nel modo seguente:

%# 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

L'ultima riga per il pulsante è solo estetica, ma vi dà un'idea su come automaticamente uicontrols di posizione. – Jonas