Code covered by the BSD License  

Highlights from
41 Complete GUI Examples

  • GUI_1() Demonstrate how to delete an entry from a uicontrol string.
  • GUI_10() Demonstrate how to make an image visible or invisible by pushbutton.
  • GUI_11()
  • GUI_12() Demonstrate how to control the mouse pointer from a GUI.
  • GUI_13() Demonstrate how to display & change a slider's position with an edit box.
  • GUI_14() Demonstrate colored text in a listbox, & how extract user's choice.
  • GUI_15() Demonstrate an edit text which has copyable but unchangeable text.
  • GUI_16() Demonstrate display & change a slider's position & limits with edit boxes
  • GUI_17() Demonstrate how to have a running clock in a GUI, and timer use.
  • GUI_18() Demonstrate the use of the buttondownfcn for an axes.
  • GUI_19() Demonstrate how to keep track of the number of times an action is taken
  • GUI_2() Demonstrate how to add a new entry to a uicontrol string.
  • GUI_20() Demonstrate how to get the chosen string from a popup.
  • GUI_21() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_22() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_23() Demonstrate finding which figure was current before callback execution.
  • GUI_24() Demonstrate how to get data from one GUI to another (data passing).
  • GUI_25() Demonstrate how to make an image loader.
  • GUI_26() Demonstrate how to make the choices in several popups mutually exclusive.
  • GUI_27() Demonstrate how to display the current location of the mouse in an axes.
  • GUI_28() Demonstrate uicontextmenu for an axes click.
  • GUI_29() Demonstrate the use of a uicontrol to manipulate an axes from a GUI,
  • GUI_3() Demonstrate how to hide a uicontrol from the user.
  • GUI_30() Same as GUI_29, except uses callback strings.
  • GUI_31() Demonstrate multiple uicontrol manipulations based on user choices.
  • GUI_32(str) Demonstrate how to get data from a GUI into the base workspace without
  • GUI_33() Demonstrate how to export data with context menu.
  • GUI_34() Demonstrate how to make a simple printscreen GUI. Note that this does
  • GUI_35() Demonstrate how to use toggle buttons to mimic tabbed panels.
  • GUI_36() Demonstrate how to make a custom dialog box which returns information.
  • GUI_37(str,time_out) Demonstrate how to make a password editbox, and nested function
  • GUI_38() Demonstrate bringing the focus to the figure after callback using JAVA.
  • GUI_39() Demonstrate use of nested functions for callbacks and other functions.
  • GUI_4() Demonstrate how to make a multiline editbox.
  • GUI_40() Demonstrate how to use an image as a background of a GUI.
  • GUI_41() Demonstrate how to save and load the state of a GUI system.
  • GUI_5() Demonstrate how to use a pushbutton to delete bits of string and how to
  • GUI_6() Demonstrate how to update one uicontrol with data from others.
  • GUI_7() Demonstrate how to store choice counters for multiple user choices.
  • GUI_8() Demonstrate how to tell which button in a uibuttongroup is selected.
  • GUI_9() Demonstrate one way to let the user know a process is running.
  • previewGUIs() This is a helper GUI which lets the user quickly view all of the example
  • contents.mSyntax Considerations for reading the M-Code:
  • View all files

41 Complete GUI Examples

by

 

27 Jul 2009 (Updated )

41 working GUIs to read and learn.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

GUI_11()
function [] = GUI_11()
% Demonstrate how to use a GUI to stop a FOR loop. 
% Note that this file has both the GUI creation lines and the FOR loop, but
% that is not necessary.  When the loop is stopped, the number of
% iterations completed will be displayed in the command window.
%
% Suggested exercise:  Modify this program so that a FOR loop running in
% another M-File could call it and allow the loop to be stopped.
%
%
% Author:  Matt Fig, with major idea from Jos(10584) on the FEX.
% Date:  1/15/2010

S.fh = figure('units','pix',...
              'pos',[400 400 120 50],...
              'menubar','none',...              
              'name','GUI_11',...
              'numbertitle','off',...
              'resize','off');
S.pb = uicontrol('string','Stop Loop!',...
                 'callback',{@pb_call},...
                 'units','pixels',...
                 'fontsize',11,...
                 'fontweight','bold',...
                 'position',[10 10 100 30]);

n = 1;
drawnow; % Draw the GUI before we enter the loop!

% Below are two versions of the FOR loop which we wish to stop.  The first
% version is simpler and close to the version which would be written if we
% didn't want a GUI to be able to stop its execution.  The second version
% allows for more iterations because it does not execute the ISHANDLE
% function  or use DRAWNOW every iteration, instead it executes the MOD 
% function every iteration.  To see the difference, run each loop for ten 
% seconds before stopping with the GUI.  The number of loop iterations will
% be displayed in the command window.  What are some potential drawbacks of
% using the second method?

for ii = 1:inf  % First loop, run EITHER this loop OR the next one.
    if ~ishandle(S.fh)  % Check if the figure exists.
        break;
    end
    drawnow;  % Try it without this line to see what happens (Ctrl+R)!
    n = n + 1; % Here is where all of the loop commands would go.
end

% for ii = 1:inf  % Second loop, run EITHER this loop OR the previous one.
%     if ~mod(ii,100)
%         if ~ishandle(S.fh)  % Check if the figure exists.
%             break;
%         end
%         drawnow;  % Try it without this line to see what happens (Ctrl+R)!
%     end
%     n = n + 1; % Here is where all of the loop commands would go.
% end

% Display how many iterations the loop was able to complete.
fprintf('\n\t%s%i\n\n','The number of iterations completed is: ',n )

    function [] = pb_call(varargin)
    % Callback for pushbutton
    delete(S.fh)  % Delete the figure.
    end
end 

Contact us