GUI Input and Output Greg Reese, Ph.D Research

GUI Input and Output Greg Reese, Ph.D Research

GUI Input and Output Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University GUI Input and Output 2010-13 Greg Reese. All rights reserved 2 User I/O Terminology GUI: Graphical User Interface

I/O: Input or Output Two ways to do user I/O, i.e., get input from the user or show output to the user) 1. In the command-line window 2. Using a GUI 3 Command-line I/O Command line advantages Easy Can use if MATLAB graphics not available Automatically converts text input to number

4 Graphical I/O Graphical User Interface (GUI) advantages Fairly easy Modern (current users familiar with it) Clear, convenient displays Fun!

5 Pre-defined dialog boxes dialog errordlg export2wsdlg Create and display empty dialog box Create and open error dialog box Export variables to workspace helpdlg inputdlg listdlg msgbox printdlg

printpreview questdlg uigetdir uigetfile uigetpref uiopen uiputfile uisave uisetcolor Create and open help dialog box Create and open input dialog box Create and open list-selection dialog box Create and open message box Print dialog box Preview figure to print

Create and open question dialog box Open standard dialog box for selecting directory Open standard dialog box for retrieving files Specify and conditionally open dialog box according to user preference Interactively select file to open and load data Open standard dialog box for saving files Interactively save workspace variables to MAT-file Open standard dialog box for setting object's ColorSpec uisetfont Open standard dialog box for setting object's font characteristics waitbar warndlg

Open or update wait bar dialog box Open warning dialog box (From MATLAB documentation) 6 Pre-defined dialog boxes Most pre-defined dialog boxes are for getting input from the user dialog export2wsdlg inputdlg listdlg printdlg questdlg

uigetdir uigetfile uigetpref uiopen uiputfile uisave uisetcolor Create and display empty dialog box Export variables to workspace Create and open input dialog box Create and open list-selection dialog box Print dialog box Create and open question dialog box Open standard dialog box for selecting directory Open standard dialog box for retrieving files

Specify and conditionally open dialog box according to user preference Interactively select file to open and load data Open standard dialog box for saving files Interactively save workspace variables to MAT-file Open standard dialog box for setting object's ColorSpec uisetfont Open standard dialog box for setting object's font characteristics 7 Pre-defined dialog boxes Some pre-defined dialog boxes are for showing output to the user errordlg

helpdlg msgbox printpreview waitbar warndlg Create and open error dialog box Create and open help dialog box Create and open message box Preview figure to print Open or update wait bar dialog box Open warning dialog box 8 Pre-defined dialog boxes

Pre-defined dialog boxes are either modal or non-modal (modeless) Modal dialog box Prevents user from going to any other window in program (including command line) until user closes box If used in script or function, code keeps running! Use uiwait() to pause code Examples: open file dialog, get user input dialog 9 Pre-defined dialog boxes

Non-modal (modeless) dialog box Permits user to go to any other window in program (including command line) If used in script or function, code keeps running! Use uiwait() to pause code Examples: error dialog, message dialog 10 GUI input Input dialog box answer = inputdlg(prompt) prompt is a text string or cell array containing prompts

answer is cell array, same size as prompt Dialog box is modal (Text strings and cell arrays discussed in other lectures) 11 GUI input Example >> name=inputdlg( 'Full name' ) name = 'Greg Reese' >> whos name Name Size Bytes Class name 1x1 132 cell

>> n = name{1} n = Greg Reese >> whos n Name Size Bytes Class n 1x10 20 char Attributes Attributes 12 GUI input Canceling returns empty cell array

>> name=inputdlg('Full name' ) name = {} >> isempty( name ) ans = 1 13 GUI input Numerals returned as text, i.e., not converted to numbers Use str2double or str2num to convert >> weight=inputdlg('Weight' ) weight = '212.5' >> w = weight{1}; >> whos w Name

Size Bytes Class w 1x5 10 char >> w = str2double( weight{1} ); >> whos w Name Size Bytes Class w 1x1 8 double Attributes Attributes 14

GUI input Try it Put up an input box that asks for the user's car manufacturer and display the string "Your car was made by xxx" where "xxx" is the name the user entered. Hint: concatenate the first part of the sentence with the user's response and display the result with disp() >> name = inputdlg( 'Your car''s manufacturer' ) Note braces name = 'Toyota' >> disp( [ 'Your car was made by ' name{1} ] ); Your car was made by Toyota 15

GUI input str2double() Call as x = str2double('str') str is a string that is text representation of one real or complex number x is a double-precision number if str doesn't represent a number, x is NaN Call as x = str2double( C ) C is a cell array of strings x is an array of double-precision numbers x is same size as C 16

GUI input str2num() Call as x = str2num('str') str is a string that is text representation of a scalar or matrix of real or complex numbers x is same size as matrix in str if str not correct, x is empty matrix str can contain one or more numbers separated by spaces, commas, or semicolons Examples from MATLAB help

String Input Numeric Output Output Class '500' 500 1-by-1 scalar double '500 250 125 67' 500, 250, 125, 67

1-by-4 row vector of double '500; 250; 125; 62.5' 500.0000 250.0000 125.0000 62.5000 4-by-1 column vector of double '1 23 6 21; 53:56' 1 23 6 21 53 54 55 56

2-by-5 matrix of double '12e-3 5.9e-3' 0.0120 0.0059 vector of double 'uint16(500)' 500 16bit unsigned integer 17

GUI input Variation 1 - add title to box answer = inputdlg(prompt,dlg_title) dlg_title title of dialog box >> name = inputdlg( 'Name', 'Character Information' ) name = 'Suleiman the Magnificent' Title doesn't appear fully in Windows 7 (MATLAB bug!) 18 GUI input Variation 2 - number of entered lines

answer = inputdlg(prompt,dlg_title,num_lines) num_lines number of lines user can enter See Help if have multiple prompts >> name = inputdlg( 'Names', 'Character Information', 3 ) name = [3x18 char] >> name{1} ans = Voldemort Dark Lord Tom Marvolo Riddle 19 GUI input Variation 3 - default value

answer = inputdlg(prompt,dlg_title, num_lines,defAns) defAns default answer to display See Help if have multiple prompts >> name = inputdlg( 'Favorite character', 'Character Information', 1, 'Hermione' ) ??? Error using ==> inputdlg at 113 Default Answer must be a cell array of strings. >> name = inputdlg( 'Favorite character', 'Character Information', 1, {'Hermione'} ) name = 'Hermione' 20 GUI input

Variation 4 - miscellaneous options answer = inputdlg(prompt,dlg_title, num_lines,defAns,options) options if 'on', can resize box horizontally See Help for other options options! >> name = inputdlg( 'Favorite character', 'Character Information', 1,{'Hermione'} ); >> name = inputdlg( 'Favorite character', 'Character Information', 1,{'Hermione'}, 'on' ); 21 GUI input Try it Make this dialog box

and print the user's input as "John Lennon's bride is xxx" where "xxx" is what the user entered. >> name=inputdlg( 'John Lennon''s?', 'Brides' ); >> disp( [ 'John Lennon''s bride is ' name{1} ] ) John Lennon's bride is Yoko Ono 22 GUI input Question dialog box button = questdlg( question, title ) Lets user answer by pressing buttons question is a text string or cell array title is text string displayed in box's title bar

by default, there are three buttons: 'Yes', 'No', or 'Cancel' button is text string set to one of above three values, or empty if user closed box dialog box is modal 23 GUI input Example >> button = questdlg( 'Save in default folder?',... 'Location of results' ); >> if strcmp( button, 'Yes' ) disp( 'Results stored in default folder' ); elseif strcmp( button, 'No' ) folder = uigetdir; else

disp( 'No results stored' ); end Results stored in default folder Pressing Yes button makes this output 24 GUI input Variations Can specify default button

Can specify text and defaults for two buttons Can specify text and defaults for three buttons Can specify miscellaneous options See Help for more information 25 GUI input Variation - specify two buttons button = questdlg( question, title, str1, str2, default ) str1 and str2 are a text strings for the two buttons default is str1 or str2 and specifies which button is initially selected

Try it Make this dialog box and display the label of the chosen button >> questdlg( 'Which dessert do you like better?',... 'Food survey', 'Pie', 'Ice cream', 'Ice cream' ) ans = Pie 26 GUI input Some predefined dialog boxes used to get specific types of input Examples: select directory, select file, specify color 27

GUI input Standard dialog box for getting file name fileName = uigetfile Displays list of files in current folder for user to select If file name valid and file exists, returns file name as character array. Otherwise, displays error message and returns to list If user clicks "Cancel" or closes box, returns 0 (not empty cell!) Dialog box is modal 28 GUI input

Example >> fileName = uigetfile; >> if ischar( fileName )... disp( ['File: ' fileName] );... else disp( 'User canceled' ); end File: uniqueId_assignment2.m 29 GUI input Variation 1 fileName = uigetfile( FilterSpec ) fileName = uigetfile( FilterSpec,... DialogTitle ) FilterSpec - one or more file specifications,

usually with wildcard (*) DialogTitle - title of dialog box See help on uigetfile() for details of FilterSpec 30 GUI input Try it Make a dialog box whose title is "MATLAB m-files" and whose filter specification is "*.m" . Call it and display the result >> fileName = uigetfile( '*.m',...

'MATLAB m-files' ) fileName = assignment2_solution.m 31 GUI input Variation 2 [ fileName pathName ] = uigetfile() [ fileName pathName ] = uigetfile( FilterSpec ) [ fileName pathName ] = uigetfile( FilterSpec,... DialogTitle ) fileName - name and extension of chosen file pathName - path 32

GUI input Try it Make a dialog box whose title is "MATLAB m-files" and whose filter specification is "*.m" . Maneuver to a different folder, select an m-file, and display the result 33 GUI input Try it >> [ fileName pathName ] = uigetfile(... '*.m', 'MATLAB m-files' ) fileName = cell_char_compare.m

pathName = C:\Greg\CSA 441\2009\ 34 GUI input There are a few pre-defined dialog boxes to get special kinds of input. One example is selecting a color. Use uisetcolor() to do this Try it >> plot(1:10) 35 GUI input Try it >> c = uisetcolor; %pick obnoxious color >>

36 GUI input Try it >> axes( 'color', c ) 37 GUI Input Questions? 38 GUI output

Message dialog box msgbox( message ) Displays text to user message is a text string, text matrix or string array Text is automatically wrapped to fit in box User presses "Okay" button to close box Program does not stop executing while waiting for user to close box Dialog box is non-modal (code keeps on running) Use uiwait() to pause code 39 GUI output Try it

Call msgbox to display "Passed!", type some other MATLAB commands, then close the message box >> msgbox( 'Passed!' ) >> pwd ans = c:\greg\csa 441\2010\lectures >> date ans = 09-Jul-2010 >> 40 GUI output uiwait() makes program stop until message box is closed. Two ways to use: >> h = uiwait( msgbox('Hello World')); >> uiwait( h );

or >> uiwait( msgbox('Hello World')); Try it Call msgbox within uiwait() and notice that don't get prompt in command window >> uiwait( msgbox( 'Passed!' ) ) >> Doesn't appear until message box closed 41 GUI output Example keepLooping = true; while keepLooping

answer=inputdlg( 'Enter two characters'); if length( answer{1} ) ~= 2 h = errordlg( 'Enter only two characters' ); uiwait( h ); else keepLooping = false; end end 42 GUI output Variation 1 msgbox( message, title ) title is title of message box

Try it Display this message box and then close it >> msgbox( 'You passed', 'RESULT' ) 43 GUI output Variation 2 msgbox( message, title, icon ) icon specifies an icon to display 'error' 'help' 'warn' 'custom' (specify your own) 'none' (no icon. This is the default)

44 GUI output Variation 2 Try it Display this message box and then close it >> msgbox( 'You failed the written part of the exam',... 'RESULT', 'warn' ) 45 GUI output Some predefined dialog boxes for output are errordlg - Display errors printpreview - Show current figure as it will

print waitbar - Open or update a wait bar (progress bar) warndlg - Display warning All are non-modal 46 GUI Input and Output Questions? 47 The

End 48

Recently Viewed Presentations

  • Why God Hates Divorce Malachi 2:13-16 1. Divorce

    Why God Hates Divorce Malachi 2:13-16 1. Divorce

    A divorce is an effort to go back on one's word, to violate a solemn promise or agreement. God takes this very seriously. "The Lord has been witness between you and the wife of your youth" ... PowerPoint Presentation Last...
  • Geoinformation Activities - UNSD

    Geoinformation Activities - UNSD

    The nature of the issues further requires that they be presented in their spatial context Typical SpatialData Requirement Lands : Agriculture and food security Land cover, soil types, topography, hydrography, rainfall, demographics, infrastructure, Suitability maps, yield statistics, etc Health Hospitals...
  • PLANNING ESSENTIALS November OFFICE OF PLANNING TO PLAN

    PLANNING ESSENTIALS November OFFICE OF PLANNING TO PLAN

    That which guides a community's growth and development - through the visioning and budgeting process, they easily saw the changes that need to be made in order to make it success and more structured. A science because it relies on...
  • Thesis and Dissertation Workshop

    Thesis and Dissertation Workshop

    Thesis/Dissertation. highly negotiated ... Be explicit, specific, and open. Know your deadlines and schedule regular meetings . Prioritize revision areas. Regular communication and check-ins. Apply feedback—follow through on discussions and feedback.
  • Lenz'S Law

    Lenz'S Law

    LENZ'S LAW Heinrich F.E. Lenz Russian physicist (1804-1865) 1834 Lenz's Law There is an induced current in a closed conducting loop if and only if the magnetic flux through the loop is changing. The direction of the induced current is...
  • Aves (Birds)

    Aves (Birds)

    Gill Sans MT Arial Wingdings 2 Verdana Calibri Solstice 1_Solstice 2_Solstice 3_Solstice 4_Solstice 5_Solstice 6_Solstice Class Aves (Birds) PowerPoint Presentation Characteristics PowerPoint Presentation PowerPoint Presentation Living Birds Kiwi Rhea Ostrich Emu PowerPoint Presentation Living Birds Penguins Parrot Wood duck Flamingos...
  • Three Techniques to Reduce Your Inventory - QAD Inc

    Three Techniques to Reduce Your Inventory - QAD Inc

    Reduce inventory investment. The Conflicts. Three Techniques to Reduce Your Inventory. Finance (Low Capital Usage) Customer Service (Many Parts--Always Available) Productivity (Long Runs--Few Parts) Cost of Capital : 10 - 15%; Warehouse space .
  • Introduction to HTML

    Introduction to HTML

    Introduction to HTML 2005 CIS101 What is the Internet? Global network of computers that are connected and communicate via a series of Protocols Protocols are rules that specify the transmission of data Internet protocols TCP/IP - network protocols that govern...