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