Creating Graphical User Interfaces |
Sharing Data with the Handles Structure
When you run a GUI, the M-file creates a handles
structure that contains all the data for GUI objects, such as controls, menus, and axes. The handles
structure is passed as an input to each callback. You can use the handles
structure to
Sharing Data
To store data that is contained in a variable X
, set a field of the handles
structure equal to X
and then save the handles
structure with the guidata
function:
You can retrieve the data in any subsequent callback with the command
For an example of sharing data between callbacks, see Example: Passing Data Between Callbacks.
For more information about handles, see Managing GUI Data with the Handles Structure.
Accessing GUI Data
You can access any of the data for the GUI components from the handles
structure. For example, suppose your GUI has a pop-up menu, whose Tag
is my_menu
, containing three items, whose String
properties are chocolate
, strawberry
, and vanilla
. You want another component in the GUI -- a push button, for example -- to execute a command on the currently selected menu item. In the callback for the push button, you can insert the command
all_choices = get(handles.my_menu, 'String') current_choice = all_choices{get(handles.my_menu, 'Value')};
The command sets the value of current_choice
to chocolate
, strawberry
, or vanilla
, depending on which item is currently selected in the menu.
You can also access the data for the entire GUI from the handles structure. If the figure's Tag
is figure1
, then
contains the figure's handle. For example, you can make the GUI close itself with the command
For an example of closing a GUI with this command, look at the callback for the Close push button for the template described in GUI with Axes and Menu.
Understanding the GUI M-File | Functions and Callbacks in the M-File |