Control table UI component appearance and behavior in
figure
-based apps
The properties listed here are valid for tables in GUIDE or in
apps created with the figure
function. If you are
using App Designer or the uifigure
function, see Table Properties instead. For more information, see GUIDE Migration Strategies.
Table UI components display rows and columns of data in an app. The uitable
function creates a table UI component and sets any required
properties before displaying it. By changing property values, you can modify certain
aspects of its appearance and behavior. Use dot notation to refer to a specific object
and property.
f = figure; t = uitable(f,'Data',[1 2 3; 4 5 6; 7 8 9]); t.FontSize = 9;
Data
— Table dataTable data, specified as a numeric array, logical array, or cell array.
The table data can be any numeric type, logical
, or
char
. Use a cell array to specify a mixture of
different data types.
Table data is displayed in the format specified by the
ColumnFormat
property. If there is a mismatch
between the data type of the table data and the value of the
ColumnFormat
property, MATLAB® converts the data or displays a warning. See the
ColumnFormat
property description for more
information.
To prevent warnings that might occur when users enter invalid data, write
a CellEditCallback
function to convert the data to the
appropriate type.
If the number of rows in the Data
property array does
not match the number of elements in the RowName
array,
then the number of rows in the resulting table is the larger of the two
values. The same is true when the ColumnName
property
does not match the number of columns in the Data
property array.
Example: t = uitable('Data',rand(10,3))
Example: t = uitable('Data',{'blue' 5 true; 'orange' 25
false})
ColumnName
— Column heading names'numbered'
(default) | n
-by-1
cell array of character
vectors | n
-by-1
categorical array | empty cell array ({}
) | ...Column heading names, specified as one of these values:
'numbered'
— The column headings are
sequential numbers that start at 1
.
Cell array of character vectors or categorical array —
Each element of the array becomes the name of a column. If you
specify a 1
-by-n
cell
array, MATLAB stores and returns the value as a
n
-by-1
cell array. If
you specify an m
-by-n
array, MATLAB reshapes the array into a column vector. Specify a
multiline column name by including a vertical slash
(|
) in the column name. For example, the
value, 'Telephone|Number'
, produces a column
heading with a newline character between the words,
“Telephone” and “Number”.
Empty cell array ({}
) — The table
has no column headings.
Empty matrix ([]
) — The table has no
column headings
If the number of columns in the Data
property array
does not match the number of elements in the ColumnName
array, then the number of columns in the resulting table is the larger of
the two values.
Example: t = uitable('ColumnName',{'Name'; 'Number'},'Data',{'Bob'
5})
Example: t = uitable('ColumnName',{'Name'; []},'Data',{'Bob'
5})
Example: t = uitable('ColumnName',{'Name';
'Telephone|Number'},'Data',{'Bob','555-1212'})
ColumnWidth
— Width of table columns'auto'
(default) |
1
-by-n
cell arrayWidth of table columns, specified as 'auto'
or as a
1
-by-n
cell array.
Each column in the cell array corresponds to a column in the table. The
values are in pixel units. If you specify 'auto'
, then
MATLAB calculates the width of the column automatically using several
factors, one of which is the ColumnName
property
value.
You can combine fixed column widths and 'auto'
column
widths in a cell array, or you can specify a single value of
'auto'
to make all column widths automatic.
Selecting Auto Width in the Table Property Editor
has the same effect as setting the ColumnWidth
property
to 'auto'
.
Example: t = uitable('ColumnWidth','auto','Data',[1 2 3; 4 5
6])
Example: t = uitable('ColumnWidth',{64 60 40},'Data',[1 2 3; 4 5
6])
Example: t = uitable('ColumnWidth',{64 'auto' 40},'Data',[1 2 3; 4
5 6])
ColumnEditable
— Ability to edit column cells[]
(default) | logical 1
-by-n
array | logical scalarAbility to edit column cells, specified as:
An empty logical array ([]
) — No
columns are editable.
A logical 1
-by-n
array
— This array specifies which columns are editable. The
value of n is equal to the number of columns in the table. Each
value in the array corresponds to a table column. A value of
true
in the array makes the cells in that
column editable. A value of false
makes the
cells in that column uneditable.
A logical scalar— The entire table editable or uneditable.
Example: t = uitable('Data',rand(10,3),'ColumnEditable',[false
true true])
Example: t =
uitable('Data',rand(10,3),'ColumnEditable',false)
Table columns that contain check boxes or pop-up menus must be editable so the user can interact with these controls.
ColumnFormat
— Cell display format{}
) (default) | 1
-by-n
cell array of character
vectorsCell display format, specified as an empty cell array or a
1
-by-n
cell array of character
vectors.
This property determines how the data in each column displays, and the
constraints for editing that data in the UI. The elements of the cell array
correspond to columns in the Data
property array. If
you do not want to specify a display format for a particular column, specify
[]
for that column. If you do not specify a format
for a column, MATLAB determines the default display by the data type of the data in
the cell.
Elements of the cell array must be one of the values described in the following table.
Cell Format Value | Description |
---|---|
'char' | Display a left-justified values To edit a cell, the user types text to replace the existing value. If an element in the
|
'logical' | Display check boxes. To edit a cell,
the user selects or clears the check box. Then,
MATLAB sets the corresponding
The
Initially, a
check box is selected when the corresponding
|
'numeric' | Display a right-justified value equivalent to the
Command Window display for numeric data. If an element
in the To edit a cell, the user can enter any text. If a user enters text that
represents a constant, such as |
A 1 -by-n cell array
of character vectors, such as {'one' 'two'
'three'} | Display a pop-up menu. To edit a cell,
the user selects an item from the pop-up menu.
MATLAB sets the corresponding
|
A format name accepted by the
| Display the |
If the ColumnFormat
value defines a pop-up menu,
the initial Data
value does not have to be one of
the options in that menu. The initial Data
value
appears until the user makes a different selection.
For instance, suppose the Data
property value for
a given column is 'Choose'
for all rows, and the
ColumnFormat
value specifies a pop-up menu with
the choices of 'group 1'
and 'group
2'
. When MATLAB creates the table, those table cells display
'Choose'
until the user selects an item in the
pop-up
menu:
f = figure; myData = {'Andrew' 31 'Male' 'Choose'; ... 'Bob' 41 'Male' 'Choose'; ... 'Anne' 20 'Female' 'Choose';}; t = uitable('Parent', f,... 'Position', [25 25 334 78],... 'ColumnFormat',({[] [] [] {'group 1' 'group 2'}}),... 'ColumnEditable', true,... 'Data', myData);
This table describes how various data types display with specific
ColumnFormat
values.
ColumnFormat | ||||
'numeric' | 'char' | 'logical' | ||
Data Type of Data Array Value | Any numeric type | Table displays number as-is. | MATLAB converts the value to text and displays it left-justified
in the table. If MATLAB cannot convert the value, then NaN displays. | Not recommended. MATLAB might return a warning when the
user edits the cell, unless you define a CellEditCallback function. |
char | Table displays the value right-justified, as if it is a number. | Table displays the value as-is. | Not recommended. MATLAB might return a warning when the
user edits the cell, unless you define a CellEditCallback function. | |
logical | Table displays logical values as numbers. MATLAB might
return a warning when the user edits the cell, unless you define a CellEditCallback function. | Table displays logical value as left-justified 'true' or 'false' . MATLAB might
return a warning when the user edits the cell, unless you define a CellEditCallback function. | Table displays logical values as check boxes. |
For example, in the following table, the first column (X-Data) is left
justified because the ColumnFormat
value for that
column is 'char'
.
RowName
— Row heading names'numbered'
(default) | n
-by-1
cell array of character
vectors | n
-by-1
categorical array | empty cell array ({}
) | ...Row heading names, specified as one of these values:
'numbered'
— The row headings are
sequential numbers that start at 1
.
Cell array of character vectors or categorical array —
Each element of the array becomes the name of a row. Row names
are restricted to one line of text. If you specify a
1
-by-n
cell array,
MATLAB stores and returns the value as a
n
-by-1
cell array. If
you specify an m
-by-n
array, MATLAB reshapes the array into a column vector.
Empty cell array ({}
) — The table
has no row headings.
Empty matrix ([]
) — The table has no
row headings
If the number of rows in the Data
property array does
not match the number of elements in the RowName
array,
then the number of rows in the resulting table is the larger of the two
values.
Example: t =
uitable('RowName',{'Name';'Number'},'Data',{'Bob';5})
Example: t =
uitable('RowName',{'Name';[]},'Data',{'Bob';5})
RearrangeableColumns
— Ability to rearrange table columns'off'
(default) | on/off logical valueAbility to rearrange table columns, specified as 'off'
or 'on'
, or as numeric or logical 1
(true
) or 0
(false
). A value of 'on'
is
equivalent to true
, and 'off'
is
equivalent to false
. Thus, you can use the value of this
property as a logical value. The value is stored as an on/off logical value
of type matlab.lang.OnOffSwitchState
.
This property provides a way to let users reorder the table columns (but not the labels) by clicking and dragging the column headers.
Note
Rearranging table columns in the UI does not affect the columns in the
Data
property array.
FontName
— Font name'FixedWidth'
Font name, specified as a system supported font name or
'FixedWidth'
. The default font depends on the specific operating
system and locale.
To use a fixed-width font that looks good in any locale,
specify 'FixedWidth'
. The actual fixed-width font used depends on the
FixedWidthFontName
property of
the root object. Changing the FixedWidthFontName
property causes an
immediate update of the display to use the new font.
Example: 'Arial'
FontSize
— Font sizeFont size, specified as a positive number. The FontUnits
property
specifies the units. The default size is system-dependent.
Example: 12
Example: 12.5
FontWeight
— Font weight'normal'
(default) | 'bold'
Font weight, specified as a value from the following table.
'normal'
— Default weight
as defined by the particular font
'bold'
— Thicker character
outlines than normal
MATLAB uses the FontWeight
property
to select a font from those available on your system. Not all fonts
have a bold font weight. Therefore, specifying a bold font weight
still can result in the normal font weight.
Note
The 'light'
and 'demi'
font weight
values have been removed in R2014b. If you specify either of these values, the
result is a normal font weight.
FontAngle
— Font angle'normal'
(default) | 'italic'
Font angle, specified as 'normal'
or 'italic'
.
MATLAB uses this property to select a font from those available on your system.
Setting this property to 'italic'
selects a slanted version of the
font, if it is available on your system.
Note
The 'oblique'
value has been removed. Use
'italic'
instead.
FontUnits
— Font units'points'
(default) | 'normalized'
| 'inches'
| 'centimeters'
| 'pixels'
Font units, specified as one of the values from this table.
Units Value | Description |
---|---|
'points' | Points. One point is 1/72nd of an inch. |
'normalized' | Normalized values for specifying the font size as a fraction of the height. When you resize a UI component, MATLAB scales the displayed font to maintain that fraction. |
'inches' | Inches. |
'centimeters' | Centimeters. |
'pixels' | Pixels. Starting in R2015b, distances in pixels are independent of your system resolution on Windows® and Macintosh systems:
On Linux® systems, the size of a pixel is determined by your system resolution. |
Visible
— State of visibility'on'
(default) | on/off logical valueState of visibility, specified as 'on'
or 'off'
,
or as numeric or logical 1
(true
) or
0
(false
). A value of 'on'
is equivalent to true
, and 'off'
is equivalent to
false
. Thus, you can use the value of this property as a logical
value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState
.
'on'
— Display the object.
'off'
— Hide the object without deleting it. You
still can access the properties of an invisible UI component.
To make your app start faster, set the Visible
property to
'off'
for all UI components that do not need to appear at
startup.
Enable
— Operational state of table'on'
(default) | 'inactive'
| 'off'
Operational state of table, specified as 'on'
,
'off'
, or 'inactive'
. The
Enable
property controls whether a UI component
responds to button clicks. There are three possible values:
'on'
– The UI component is
operational.
'off'
– The UI component is not operational
and appears grayed-out.
'inactive'
– The UI component is not
operational, but it has the same appearance as when
Enable
is
'on'
.
The value of the Enable
property and the type of
button click determine how the UI responds.
Enable Value | Response to Left-Click | Response to Right-Click |
---|---|---|
'on' | The |
|
'off' or
'inactive' |
|
|
Tooltip
— TooltipTooltip, specified as a character vector, string scalar, or categorical array. Use this property to display a message when the user hovers the pointer over the component at run time. The tooltip does not display when the component is disabled. If you specify this property as a categorical array, MATLAB uses the values in the array, not the full set of categories.
To create multiple lines of text, use the sprintf
function to insert newline characters ('\n'
)
in your text. For
example:
txt = sprintf('Line 1\nLine 2');
Then set the Tooltip
property to the value returned by
sprintf
.
ContextMenu
— Context menuGraphicsPlaceholder
array (default) | ContextMenu
objectContext menu, specified as a ContextMenu
object created using the uicontextmenu
function. Use this property to display a context menu when
you right-click on a component.
TooltipString
— Tooltip (not recommended)Tooltip, specified as a character vector, string scalar, or categorical array. The tooltip appears when you hover over the component in the app. If you specify this property as a categorical array, MATLAB uses the values in the array, not the full set of categories.
Note
The TooltipString
property is not recommended starting in
R2018b. Use the Tooltip
property instead.
Selected
— Selection state (not recommended)'off'
(default) | on/off logical value
Note
The behavior of the Selected
property changed in R2014b,
and it is not recommended. It no longer has any effect on objects of this type.
This property might be removed in a future release.
SelectionHighlight
— Display of selection handles (not recommended)'on'
(default) | on/off logical value
Note
The behavior of the SelectionHighlight
property changed in R2014b, and it is not recommended. It no
longer has any effect on objects of this type. This property
might be removed in a future release.
ForegroundColor
— Cell text color[0 0 0]
(default) | RGB triplet | hexadecimal color code | 'r'
| 'g'
| 'b'
| ...Cell text color, specified as an RGB triplet, a hexadecimal color code, or one of the color options listed in the table.
RGB triplets and hexadecimal color codes are useful for specifying custom colors.
An RGB triplet is a three-element row vector whose elements specify the
intensities of the red, green, and blue components of the color. The intensities
must be in the range [0,1]
; for example, [0.4 0.6
0.7]
.
A hexadecimal color code is a character vector or a string scalar that starts
with a hash symbol (#
) followed by three or six hexadecimal
digits, which can range from 0
to F
. The
values are not case sensitive. Thus, the color codes
'#FF8800'
, '#ff8800'
,
'#F80'
, and '#f80'
are
equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name | Short Name | RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' | |
'green' | 'g' | [0 1 0] | '#00FF00' | |
'blue' | 'b' | [0 0 1] | '#0000FF' | |
'cyan' | 'c' | [0 1 1] | '#00FFFF' | |
'magenta' | 'm' | [1 0 1] | '#FF00FF' | |
'yellow' | 'y' | [1 1 0] | '#FFFF00' | |
'black' | 'k' | [0 0 0] | '#000000' | |
'white' | 'w' | [1 1 1] | '#FFFFFF' |
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|
[0 0.4470 0.7410] | '#0072BD' | |
[0.8500 0.3250 0.0980] | '#D95319' | |
[0.9290 0.6940 0.1250] | '#EDB120' | |
[0.4940 0.1840 0.5560] | '#7E2F8E' | |
[0.4660 0.6740 0.1880] | '#77AC30' | |
[0.3010 0.7450 0.9330] | '#4DBEEE' | |
[0.6350 0.0780 0.1840] | '#A2142F' |
BackgroundColor
— Background color[1 1 1; 0.94 0.94 0.94]
(default) | RGB triplet | m-by-3 matrix of RGB tripletsBackground color, specified as an RGB triplet or an m-by-3 matrix of RGB
triplets. An RGB triplet is a row vector that specifies the intensities of
the red, green, and blue components of the color. The intensities must be in
the range, [0,1]
. Color names are not valid.
Specify an m-by-3 matrix when you want the shading of the table rows to
follow a repeating pattern of m different colors. Each row of the matrix
must be an RGB triplet. MATLAB uses the rows of the matrix when the
RowStriping
property is 'on'
.
The table background is not striped unless both
RowStriping
is 'on'
and
BackgroundColor
is an m-by-3 matrix.
Example: t = uitable('Data',rand(10,3),'BackgroundColor',[0.85
0.85 1])
Example: t = uitable('Data',rand(10,3),'BackgroundColor',[1 1 1
;0.85 0.85 1])
The following table lists the RGB triplets for certain colors.
Color | RGB Triplet |
---|---|
Yellow | [1 1 0] |
Magenta | [1 0 1] |
Cyan | [0 1 1] |
Red | [1 0 0] |
Green | [0 1 0] |
Blue | [0 0 1] |
White | [1 1 1] |
Black | [0 0 0] |
RowStriping
— Alternate row shading'on'
(default) | on/off logical valueAlternate row shading, specified as 'on'
or
'off'
, or as numeric or logical 1
(true
) or 0
(false
). A value of 'on'
is
equivalent to true
, and 'off'
is
equivalent to false
. Thus, you can use the value of this
property as a logical value. The value is stored as an on/off logical value
of type matlab.lang.OnOffSwitchState
.
This property controls the shading pattern of the table rows. When the
RowStriping
value is set to
'on'
, the BackgroundColor
matrix
specifies the row colors to display in a repeating pattern. If the
BackgroundColor
matrix has only one row, then the
shading is the same in all table rows.
When RowStriping
is set to 'off'
,
then the first color in the BackgroundColor
matrix
defines the shading for all rows in the table.
Position
— Location and size[left bottom width height]
Location and size, specified as a four-element vector of the form
[left bottom width height]
. This table describes each
element in the vector.
Element | Description |
---|---|
left | Distance from the inner left edge of the parent container to the outer left edge of the table |
bottom | Distance from the inner bottom edge of the parent container to the outer bottom edge of the table |
width | Distance between the right and left outer edges of the table |
height | Distance between the top and bottom outer edges of the table |
All measurements are in units specified by the
Units
property.
Note
The Position
values are relative to the
parent container’s drawable area. The
drawable area is the area inside the borders of the container and
does not include the area occupied by the title. If the parent container
is a figure, then the drawable area also excludes the menu bar and
tool bar.
Use the Extent
property to determine proper sizing
for a table with respect to the data. Set the width
and
height
of Position
property to
the width and height of the Extent
property. Be aware
that if the table has large extents, doing this can cause the table to
extend beyond the right or top edge of its parent container.
You can combine dot notation and array indexing when you want to
change one or two consecutive values in the
Position
vector. For example, this code sets
the width and height of the table to match the
Extent
of the
table:
t = uitable('Data',rand(10,3));
t.Position(3:4) = t.Extent(3:4);
InnerPosition
— Location and size[left bottom width height]
Location and size, specified as a four-element vector of the form [left
bottom width height]
. All measurements are in units specified by the
Units
property.
This property value is identical to the Position
and
OuterPosition
property values.
OuterPosition
— Location and size[left bottom width height]
Location and size, specified as a four-element vector of the form [left
bottom width height]
. All measurements are in units specified by the
Units
property.
This property value is identical to the Position
and
InnerPosition
property values.
Extent
— Size of enclosing rectangleThis property is read-only.
Size of enclosing rectangle, returned as a four-element row vector. The
first two elements of the vector are always zero. The third and fourth
elements are the width and height of the rectangle containing the table,
respectively. All measurements are in units specified by the
Units
property.
MATLAB determines the size of the rectangle based on the current
Data
, RowName
and
ColumnName
property values. MATLAB estimates the width and height values using the column and row
widths. The estimated extent can be larger than the figure.
Consider using the Extent
property value when
specifying the width and height values of the Position
property.
Units
— Units of measurement'pixels'
(default) | 'normalized'
| 'inches'
| 'centimeters'
| 'points'
| 'characters'
Units of measurement, specified as one of the values from this table.
Units Value | Description |
---|---|
'pixels' (default) | Pixels. Starting in R2015b, distances in pixels are independent of your system resolution on Windows and Macintosh systems:
On Linux systems, the size of a pixel is determined by your system resolution. |
'normalized' | These units are normalized with respect to the parent container.
The lower-left corner of the container maps to
(0,0) and the upper-right corner maps to
(1,1) . |
'inches' | Inches. |
'centimeters' | Centimeters. |
'points' | Points. One point equals 1/72nd of an inch. |
'characters' | These units are based on the default uicontrol font of the graphics root object:
To access the default uicontrol font, use
|
MATLAB measures all units from the lower left corner of the parent object.
This property affects the Position
property.
If you change the Units
property, consider returning
its value to the default value after completing your computation to
avoid affecting other functions that assume the default value.
The order in which you specify the Units
and Position
properties
has these effects:
If you specify the Units
before
the Position
property, then MATLAB sets Position
using
the units you specify.
If you specify the Units
property
after the Position
property, MATLAB sets
the position using the default Units
. Then, MATLAB converts
the Position
value to the equivalent value in
the units you specify.
CellEditCallback
— Cell edit callback functionCell edit callback function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
This function executes when the user changes the contents of a table cell. You can use this callback function to perform calculations or validate user input.
If you specify this property as a function handle (or cell array
containing a function handle), MATLAB passes a CellEditData
object containing
event data as the second argument to the callback function. This object
contains the properties described in the following table. You can access
these properties inside the callback function using dot notation.
Property | Description |
---|---|
Indices | 1-by-2 array containing the row and column indices of the cell the user edited. |
PreviousData | Previous cell data. The default is an empty matrix,
|
EditData | User-entered value. |
NewData | Value that MATLAB wrote to the The |
Error | Error message returned if MATLAB detects an error in the user-entered data. The If
the |
Source | Table object that is executing the
|
EventName |
|
When the user edits a table cell, MATLAB performs these steps:
Tries to store the new value into the
Data
property of the table
Calls the CellEditCallback
function (if
it exists)
If the value results in an error and there is no
CellEditCallback
function, then the cell data
reverts to its previous value and no error displays.
This example shows how to create a callback function that evaluates a user-entered data in a numeric table cell. Paste this code into an editor and run it to see how it works.
function myui f = figure; myData = { 'A ' 31; 'B' 41; 'C' 5; 'D' 2.6}; t = uitable('Parent',f,... 'Position', [25 25 700 200], ... 'Data',myData,... 'ColumnEditable', [false true], ... 'CellEditCallback',@converttonum); function converttonum(hObject,callbackdata) numval = eval(callbackdata.EditData); r = callbackdata.Indices(1) c = callbackdata.Indices(2) hObject.Data{r,c} = numval; end end
When you run myui
, you can change a value in the
second column of the table. In response, the
converttonum
callback function executes. The
converttonum
function uses the eval
function to evaluate
your input. Then, it sets the cell data to the value of
numval
. For example, if you enter
pi
or1+1
, the
converttonum
function sets the table cell value
to a numeric representation of the input. Because there is no error
checking in the converttonum
function, invalid
expressions return an error and the new value of the table cell becomes
NaN
.
CellSelectionCallback
— Cell selection callback functionCell selection callback function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
This callback function executes when the user performs one of the following actions:
Highlights a data cell (not a row or column header cell) by clicking it or navigating to it with an arrow key
Selects a rectangular group of cells by holding the Shift key while selecting the cells
Deselects a cell by Ctrl-clicking it
If you specify this property as a function handle (or cell array
containing a function handle), MATLAB passes a CellSelectionChangeData
object
containing event data as the second argument to the callback function. This
object contains the properties listed in the following table.
Property | Description |
---|---|
Indices | n-by-2 array containing the row and column indices of the cell the user selected. |
Source | The table object that is executing the
|
EventName |
|
ButtonDownFcn
— Button-press callback function''
(default) | function handle | cell array | character vectorButton-press callback function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
The ButtonDownFcn
callback is a function that
executes when the user clicks a mouse button on the UI component. The
callback executes in the following situations:
The user right-clicks the table, and the
Enable
property is set to
'on'
.
The user right-clicks or left-clicks the table, and the
Enable
property is set to
'off'
or
'inactive'
.
KeyPressFcn
— Key press callback function''
(default) | function handle | cell array | character vectorKey press callback function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
This callback function executes when the Table
object
has focus and the user presses a key. If you do not define a function for this property,
MATLAB passes key presses to the parent figure. Repeated key presses retain the
focus of the Table
object, and the function
executes with each key press. If the user presses multiple keys at approximately the
same time, MATLAB detects the key press for the last key pressed.
If you specify this property as a function handle (or cell array containing a function handle), MATLAB passes an object containing callback data as the second argument to the callback function. This object contains the properties described in the following table. You can access these properties inside the callback function using dot notation.
Property | Description | Examples: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | The character that displays as a result of pressing a key or keys. The character can be empty or unprintable. | 'a' | '=' | '' | 'A' |
Modifier | A cell array containing the names of one or more modifier keys that are being pressed (such as, Ctrl, Alt, Shift). | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | The key being pressed, identified by the (lowercase) label on the key, or a text description. | 'a' | 'equal' | 'shift' | 'a' |
Source | The object that has focus when the user presses the key. | Table object | Table object | Table object | Table object |
EventName | The action that caused the callback function to execute. | 'KeyPress' | 'KeyPress' | 'KeyPress' | 'KeyPress' |
Pressing modifier keys affects the callback data in the following ways:
Modifier keys can affect the Character
property,
but do not change the Key
property.
Certain keys, and keys modified with Ctrl,
put unprintable characters in the Character
property.
Ctrl, Alt, Shift,
and several other keys, do not generate Character
property
data.
You also can query the CurrentCharacter
property
of the figure to determine which character the user pressed.
KeyReleaseFcn
— Key-release callback function''
(default) | function handle | cell array | character vectorKey-release callback function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
This callback function executes when the Table
object
has focus and the user releases a key.
If you specify this property as a function handle (or cell array containing a function handle), MATLAB passes an object containing callback data as the second argument to the callback function. This object contains the properties described in the following table. You can access these properties inside the callback function using dot notation.
Property | Description | Examples: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | Character interpretation of the key that was released. | 'a' | '=' | '' | 'A' |
Modifier | Current modifier, such as | {1x0 cell} | {1x0 cell} | {1x0 cell} | {1x0 cell} |
Key | Name of the key that was released, identified by the lowercase label on the key, or a text description. | 'a' | 'equal' | 'shift' | 'a' |
Source | The object that has focus when the user presses the key. | Table object | Table object | Table object | Table
object |
EventName | The action that caused the callback function to execute. | 'ase' | 'ase' | 'ase' | 'ase' |
Pressing modifier keys affects the callback data in the following ways:
Modifier keys can affect the Character
property,
but do not change the Key
property.
Certain keys, and keys modified with Ctrl,
put unprintable characters in the Character
property.
Ctrl, Alt, Shift,
and several other keys, do not generate Character
property
data.
You also can query the CurrentCharacter
property
of the figure to determine which character the user pressed.
CreateFcn
— Component creation function''
(default) | function handle | cell array | character vectorComponent creation function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
This property specifies a callback function to execute when MATLAB creates the component. MATLAB initializes all component property values before executing the
CreateFcn
callback. If you do not specify the
CreateFcn
property, then MATLAB executes a default creation function.
Use the gcbo
function in your
CreateFcn
code to get the component object that is being
created.
Setting the CreateFcn
property on an existing component object
has no effect.
DeleteFcn
— Component deletion function''
(default) | function handle | cell array | character vectorComponent deletion function, specified as one of these values:
A function handle.
A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.
A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.
For more information about specifying a callback property value as a function handle, cell array, or character vector, see How to Specify Callback Property Values.
The DeleteFcn
property specifies a callback function to execute
when MATLAB deletes the component (for example, when the user closes the window).
MATLAB executes the DeleteFcn
callback before destroying the
properties of the component object. If you do not specify the
DeleteFcn
property, then MATLAB executes a default deletion function.
Use the gcbo
function in your
DeleteFcn
code to get the component object that is being
deleted.
Interruptible
— Callback interruption'on'
(default) | on/off logical valuesCallback interruption, specified as 'on'
or 'off'
, or as
numeric or logical 1
(true
) or
0
(false
). A value of 'on'
is equivalent to true
, and 'off'
is equivalent to
false
. Thus, you can use the value of this property as a logical
value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState
.
The Interruptible
property determines if a running callback can
be interrupted. There are two callback states to consider:
The running callback is the currently executing callback.
The interrupting callback is a callback that tries to interrupt the running callback.
Whenever MATLAB invokes a callback, that callback attempts to interrupt the running
callback (if one exists). The Interruptible
property of the object
owning the running callback determines if interruption is allowed:
A value of 'on'
allows other callbacks to interrupt the
object's callbacks. The interruption occurs at the next point where
MATLAB processes the queue, such as when there is a drawnow
, figure
, getframe
, waitfor
, or pause
.
If the running callback contains one of these commands, then MATLAB stops the execution of the callback at this point and executes the interrupting callback. MATLAB resumes executing the running callback when the interrupting callback completes.
If the running callback does not contain one of these commands, then MATLAB finishes executing the callback without interruption.
A value of 'off'
blocks all interruption attempts. The
BusyAction
property of the object owning the
interrupting callback determines if the interrupting callback is discarded
or put into a queue.
Note
Callback interruption and execution behave differently in these situations:
If the interrupting callback is a DeleteFcn
, CloseRequestFcn
,
or SizeChangedFcn
callback, then the interruption
occurs regardless of the Interruptible
property
value.
If the running callback is currently executing the waitfor
function,
then the interruption occurs regardless of the Interruptible
property
value.
Timer
objects execute according to
schedule regardless of the Interruptible
property
value.
MATLAB does not save the state of properties
or the display when an interruption occurs. For example, the object
returned by the gca
or gcf
command might change when another
callback executes.
See Interrupt Callback Execution for an example that shows
how the Interruptible
and BusyAction
properties
affect the behavior of a program.
BusyAction
— Callback queuing'queue'
(default) | 'cancel'
Callback queuing specified as 'queue'
(default)
or 'cancel'
. The BusyAction
property
determines how MATLAB handles the execution of interrupting callbacks.
There are two callback states to consider:
The running callback is the currently executing callback.
The interrupting callback is a callback that tries to interrupt the running callback.
The BusyAction
property of the source of
the interrupting callback determines how MATLAB handles its execution.
The BusyAction
property has these values:
'queue'
— Put the interrupting
callback in a queue to be processed after the running callback finishes
execution.
'cancel'
— Do not execute
the interrupting callback.
Whenever MATLAB invokes a callback, that callback always
attempts to interrupt an executing callback. The Interruptible
property
of the object whose callback is running determines if interruption
is allowed. If Interruptible
is set to:
on
— Interruption occurs
at the next point where MATLAB processes the queue. This is the
default.
off
— The BusyAction
property
(of the object owning the interrupting callback) determines if MATLAB enqueues
or ignores the interrupting callback.
See Interrupt Callback Execution for an example that shows
how the BusyAction
and Interruptible
properties
affect the behavior of a program.
BeingDeleted
— Deletion statusThis property is read-only.
Deletion status, returned as an on/off logical value of type matlab.lang.OnOffSwitchState
.
MATLAB sets the BeingDeleted
property to
'on'
when the DeleteFcn
callback begins
execution. The BeingDeleted
property remains set to
'on'
until the component object no longer exists.
Check the value of the BeingDeleted
property to verify that the object is not about to be deleted before querying or modifying it.
HitTest
— Ability to become current object'on'
(default) | on/off logical valueAbility to become current object,
specified as 'on'
or 'off'
, or as
numeric or logical 1
(true
) or
0
(false
). A value of
'on'
is equivalent to true
, and
'off'
is equivalent to false
.
Thus, you can use the value of this property as a logical value. The value
is stored as an on/off logical value of type matlab.lang.OnOffSwitchState
.
'on'
— Sets the current object to the
Table
when the user clicks the component
in the running app. Both the CurrentObject
property of the Figure
and the gco
function
return the Table
as the current
object.
'off'
— Sets the current object to be the
closest ancestor of the Table
whose
HitTest
is 'on'
when
the user clicks the component in the running app.
Parent
— Parent objectFigure
| Panel
| ButtonGroup
| Tab
Parent object, specified as a Figure
, Panel
,
ButtonGroup
, or Tab
object. Use this property
to specify the parent container when creating a UI component or to move an existing UI
component to a different parent container.
Children
— Table
childrenTable
children, returned as an empty array.
Table
objects have no children. Setting this property has
no effect.
HandleVisibility
— Visibility of object handle'on'
(default) | 'callback'
| 'off'
Visibility of object handle, specified as 'on'
,
'callback'
, or 'off'
.
This property controls the visibility of the object handle in its parent's list of children.
When a handle is not visible in its parent's list of children, it is not returned by functions
that obtain handles by searching the object hierarchy or querying handle properties. These
functions include get
, findobj
, gca
, gcf
, gco
, newplot
, cla
, clf
, and close
. The HandleVisibility
property also controls the visibility of the object’s handle in the parent figure's
CurrentObject
property. Handles are still valid even if they are not
visible. If you can access an object, you can set and get its properties, and pass it to any
function that operates on objects.
HandleVisibility Value | Description |
---|---|
'on' | The object handle is always visible. |
'callback' | The object handle is visible from within callbacks or functions invoked by callbacks, but not from within functions invoked from the command line. This option blocks access to the object at the command-line, but allows callback functions to access it. |
'off' | The object handle is invisible at all times. This option is useful for preventing
unintended changes to the UI by another function. Set the
HandleVisibility to 'off' to temporarily hide the
handle during the execution of that function. |
Set the graphics root ShowHiddenHandles
property to
'on'
to make all handles visible, regardless of their
HandleVisibility
value. This setting has no effect on their
HandleVisibility
values.
Type
— Type of graphics object'uitable'
This property is read-only.
Type of graphics object, returned as 'uitable'
.
Tag
— Object identifier''
(default) | character vector | string scalarObject identifier, specified as a character vector or string scalar. You can specify a unique Tag
value to serve as an identifier for an object. When you need access to the object elsewhere in your code, you can use the findobj
function to search for the object based on the Tag
value.
UserData
— User data[]
(default) | arrayUser data, specified as any array. Specifying UserData
can be
useful for sharing data within apps. See Share Data Among Callbacks for more
information.
UIContextMenu
property is not recommendedNot recommended starting in R2020a
Starting in R2020a, using the UIContextMenu
property to assign a
context menu to a graphics object or UI component is not recommended. Use the
ContextMenu
property instead. The property values are the
same.
There are no plans to remove support for the UIContextMenu
property at this time. However, the UIContextMenu
property no
longer appears in the list returned by calling the get
function on a
graphics object or UI component.