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_16()
function [] = GUI_16()
% Demonstrate display & change a slider's position & limits with edit boxes  
% This is an extension of GUI_13. Slide the slider and it's position will 
% be shown in the editbox.  Enter a valid number in the editbox and the 
% slider will be moved to that position.  If the number entered is outside 
% the range of the slider, the number will be reset.  The range of the 
% slider will be shown in two editboxes on either side of the slider.  The 
% user may change the range of the slider, as long as valid entries are 
% made.
%
% Suggested exercise:  Notice that any number (>min) is acceptable for the 
% max range number, and that when max is chosen such that max < value,
% value is set equal to max.  Modify the code to restrict max>=value.  Do
% similarly for the min.
%
%
% Author:  Matt Fig
% Date:  7/15/2009

S.fh = figure('units','pixels',...
              'position',[300 300 390 100],...
              'menubar','none',...
              'name','GUI_16',...
              'numbertitle','off',...
              'resize','off');
S.sl = uicontrol('style','slide',...
                 'unit','pix',...
                 'position',[60 10 270 30],...
                 'min',1,'max',100,'val',50); 
S.ed(1) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[10 10 40 30],...
                    'fontsize',12,...
                    'string','1');   % Displays the min.          
S.ed(2) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[60 50 270 30],...
                    'fontsize',16,...
                    'string','50');  % Displays the value.
S.ed(3) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[340 10 40 30],...
                    'fontsize',12,...
                    'string','100');    % Displays the max.    
set([S.ed(:);S.sl],'call',{@sl_call,S});  % Shared Callback.



function [] = sl_call(varargin)
% Callback for the edit box and slider.
[h,S] = varargin{[1,3]};  % Get calling handle and structure.
SL = get(S.sl,{'min','value','max'});  % Get the slider's info.
E = str2double(get(h,'string'));  % Numerical edit string.

switch h  % Who called?
    case S.ed(1)
        if E <= SL{2}
            set(S.sl,'min',E)  % E is less than current value.
        elseif E < SL{3}
            set(S.sl,'val',E,'min',E) % E is less than max value.
            set(S.ed(2),'string',E) % Set the current display.
        else
            set(h,'string',SL{1}) % Reset the value.
        end
    case S.ed(2)
        if E >= SL{1} && E <= SL{3}
            set(S.sl,'value',E)  % E falls within range of slider.
        else
            set(h,'string',SL{2}) % User tried to set slider out of range. 
        end
    case S.ed(3)
        if E >= SL{2}
            set(S.sl,'max',E)  % E is less than current value.
        elseif E > SL{1}
            set(S.sl,'val',E,'max',E) % E is less than max value.
            set(S.ed(2),'string',E) % Set the current display.
        else
            set(h,'string',SL{3}) % Reset the value.
        end      
    case S.sl
        set(S.ed(2),'string',SL{2}) % Set edit to current slider.
    otherwise
        % Do nothing
end




Contact us