130 likes | 203 Views
CS 170 – Intro to Scientific and engineering Programming . Graphical User Interface (GUI). GUI-based programs put the user in the driver’s seat through interactions with components of a graphical display. GUI overview. GUI’s are a collection of objects. Every object has a unique handle.
E N D
Graphical User Interface (GUI) • GUI-based programs put the user in the driver’s seat through interactions with components of a graphical display
GUI overview • GUI’s are a collection of objects. • Every object has a unique handle. • Every object has properties. • The user can alter these properties at design time.
MATLAB’s Graphical User InterfaceDevelopment Environment (GUIDE)
Saving the GUI layout • When our energyGUI layout is saved the first time, MATLAB generates two files: • energyGUI.fig: Layout Editor window with the developing GUI, which can be modified later by entering>> guide energyGUI.fig • energyGUI.m: file that contains code to create the GUI display
GUI Handles • Every object in the GUI will have an unique handle (name). • The handle allows developers to access the objects properties.
How do we obtain handles? fig = openfig('myFirstGUI.fig'); %loads the figure handles = guihandles(fig); % Update handles structure guidata(hObject, handles);
Inputs to GUI functions • hObjectis a number, the graphics handle, that uniquely identifies the • GUI component and its associated properties • eventdatais not used in the current version of MATLAB • handles is a structure that contains information that needs to be shared between functions in this file. Initially it contains a field for each GUI component created, using Tag property as name: • handles.axes1 • handles.sourceMenu • handles.sourceToggle • handles.titleLabel • handles.titleBox • handles.widthCheckbox • handles.plotButton • handles.closeButton • handles.figure1
Once we have the ‘Handle’ how do we change properties ? %Set data to current value handles.peaks = peaks(35); handles.current_data= handles.peaks; surf(handles.current_data); % Choose default command line output for myFirstGUI handles.output = hObject;
Callback functions • For each component, the header of a Callback function is created. These functions are invoked automatically when the user interacts with the corresponding component
Resources • Lecture slides CS112, Ellen Hildreth, http://cs.wellesley.edu/~cs112/