This is post is about to Develop understanding how to use the GUI in MATLAB.
 The contents of this article are taken from MATLAB Site(Maths.com).
Graphical User Interface:
•         A graphical user interface (GUI) is a user interface built with graphical objects, such as buttons, text fields, sliders, and menus 
•         Applications that provide GUIs are generally easier to learn and use since the person using the application does not need to know what commands are available or how they work
•         The action that results from a particular user action can be made clear by the design of the interface 
Topics to be covered:
•         How to create GUIs with MATLAB
–        Laying out the components
–        Programming them to do specific things in response to user actions
–        Saving and launching the GUI
•         Will not go into detail on MATLAB scripts
•         Will not attempt to cover the "art" of good user interface design
Getting Started:
   - Another way of starting is to type “guide” in the edit window and press “Enter” button.
The Process of Implementing a GUI Involves Two Basic Tasks: 
•         Laying out the GUI components      
–        MATLAB implements GUIs as figure windows containing various styles of uicontrol (User Interface) objects
•         Programming the GUI components
–        Must program each object to perform the intended action when activated by the user of the GUI
GUIDE (Graphical User Interface Development Environment):
•         GUIDE is primarily a set of layout tools
•         GUIDE also generates an M-file that contains code to handle the initialization and launching of the GUI
–        This M-file also provides a framework for the implementation of the callbacks - the functions that execute when users activate a component in the GUI.
Callbacks:
•         Routine that executes whenever you activate the uicontrol object 
•         Define this routine as a string that is a valid MATLAB expression or the name of an   M-file
•         The expression executes in the MATLAB workspace.
Unicontrol objects:
•         Push Buttons
•         Toggle Buttons
•         Check Boxes
•         Radio Buttons
•         Edit Text
•         Static Text
•         Sliders 
•         Frames 
•         List Boxes
•         Popup Menus
Push Buttons:
•         Push buttons generate an action when pressed (e.g., an OK button may close a dialog box and apply settings)
•         When you click down on a push button, it appears depressed; when you release the mouse, the button's appearance returns to its non-depressed state; and its callback executes on the button up event
Toggle Buttons:
•         Toggle buttons generate an action and indicate a binary state (e.g., on or off)
•         The callback routine needs to query the toggle button to determine what state it is in
–        You can do this with a statement that uses the current callback object's handle (gcbo)
•         get(gcbo,'Value')
•         MATLAB sets the Value property to 1 when depressed and 0 when not depressed
Check Boxes:
•         Generate an action when clicked and indicate their state as checked or not checked 
•         Useful when providing the user with a number of independent choices that set a mode
•         The Value property indicates the state of the check box by taking on the value 1 or 0
•         Value = 1, box is checked. 
•         Value = 0, box is not checked. 
Radio Boxes:
•         Similar to check boxes, but are intended to be mutually exclusive within a group of related radio buttons (i.e., only one button is in a selected state at any given time) 
•         To make radio buttons mutually exclusive within a group, the callback for each radio button must set the Value property to 0 on all other radio buttons in the group
Edit Text:
•         Fields that enable users to enter or modify text strings
•         Use edit text when you want text as input
•         The String property contains the text entered by the user.
Static Text:
•         Displays lines of text 
•         Typically used to label other controls, provide directions to the user, or indicate values associated with a slider 
•         Users cannot change static text interactively and there is no way to invoke the callback routine associated with it.
Sliders - Value Property:
•         Contains the numeric value of the slider 
•         Can set this property to specify an initial condition and query it in the slider's callback to obtain the value set by the user
–         For example, your callback could contain the statement:
•         slider_value = get(handles.slider1,'Value');
Four Properties that Control the Range and Step Size of the Slider:
–        Value - contains the current value of the slider
–        Max - defines the maximum slider value. 
–        Min - defines the minimum slider value. 
–        Slider Step - specifies the size of a slider step with respect to the range.
Sliders - Value Property:
•         Contains the numeric value of the slider 
•         Can set this property to specify an initial condition and query it in the slider's callback to obtain the value set by the user
–         For example, your callback could contain the statement:
•         slider_value = get(handles.slider1,'Value');
Sliders - Max and Min Properties:
•         The Max and Min properties specify the slider's range (Max - Min)
Sliders - Slider Step Property:
•         Controls the amount the slider Value property changes when you click the mouse on the arrow button or on the slider trough
•         Specify Slider Step as a two-element vector
–        The default, [0.01 0.10], provides a 1 percent change for clicks on an arrow and a 10 percent change for clicks in the trough
–        The actual step size is a function of the slider step and the slider range
Frames:
•         Boxes that enclose regions of a figure window 
•         Can make a user interface easier to understand by visually grouping related controls 
•         Have no callback routines associated with them and only uicontrols can appear within frames (axes cannot)
List Boxes:
•         Display a list of items (defined using the String property) and enable users to select one or more items 
•         By default, the first item in the list is highlighted when the list box is first displayed 
–        If you do not want any item highlighted, then set the Value property to empty, []
Single or Multiple Selections:
•         The values of the Min and Max properties determine whether users can make single or multiple selections: 
–        If Max - Min > 1, then list boxes allow multiple item selection
–        If Max - Min <= 1, then list boxes do not allow multiple item selection
List Box Example:
Popup Menus:
•         Open to display a list of choices (defined using the String property) when users press the arrow 
•         When not open, a popup menu displays the current choice, which is determined by the index contained in the Value property 
–        The first item in the list has an index of 1
•         You can query the Value property in the callback routine to determine which choice the user made
•         Can be used in place of Radio Buttons
Implementation of a GUI:
•         Use GUIDE to lay out the components interactively
•         Generate two files that save and launch the GUI
GUIDE - Primarily a Set of Layout Tools:
•         Control Panel - add and arrange objects in the figure window 
•         Alignment Tool - align objects 
•         Property Editor - inspect and set property values 
•         Object Browser - observe a hierarchical list of the Handle Graphics objects 
•         Menu Editor - create window menus and context menus
Control Panel:
•         Enables you to select GUI components from a palette and arrange them in a figure window
•         The component palette contains the GUI components (uicontrol objects) that are available for you to use in your user interface
Alignment Tool:
•         Enables you to position objects with respect to each other and to adjust the spacing between selected objects 
•         The specified alignment operations apply to all components that are selected when you press the “Apply” button
Property Editor:
•         Enables you to set the properties of the components in your layout. 
•         Provides a list of all settable properties and displays the current value.
Menu Editor:
•         Allows menus on figures to be interactively modified
•         The Label, Tag, and Callback properties can be modified directly on the tool
•         A FIG-file - contains a complete description of the GUI figure and all of its children (uicontrols and axes), as well as the values of all object properties. 
•         An M-file - contains the functions that launch and control the GUI and the callbacks, which are defined as sub-functions
FIG-files:
•         Binary files created as a result of saving a figure 
•         Contains a serialized figure object
–        A complete description of the figure object and all of its children
•         All of the objects property values are set to the values they were saved with when the figure is recreated
M-files:
•         MATLAB generates the application M-file to provide a framework for the program that controls the GUI
•         All code, including the callbacks, is contained in the application M-file
–        Each callback is implemented as a sub-function in the M-file
Summary:
•         MATLAB GUI is a very powerful tool when used correctly
•         It takes a lot of experimenting with and a good background in programming.
•         Must have a good understanding of MATLAB and be able to use the MATLAB language and commands to create routines






 
No comments:
Post a Comment