Main Content

uipushtool

Create push tool in toolbar

Description

pt = uipushtool creates a push tool in the toolbar of the current figure and returns the PushTool object.

The current figure must be one created with the figure function. If the current figure does not have a child toolbar, then MATLAB® creates one in the current figure to serve as the parent. If a figure created with the figure function does not exist, then MATLAB creates one and calls the uitoolbar function to create a toolbar to serve as the parent.

Push tools behave like push buttons. When you click them, they appear to depress until you release the mouse button.

example

pt = uipushtool(parent) creates a push tool in the specified parent toolbar.

example

pt = uipushtool(___,Name,Value) creates a push tool with property values specified using one or more name-value pair arguments. Specify name-value pairs with either of the previous syntaxes.

Examples

collapse all

Create a UI figure by calling the uifigure function. Create a toolbar in the UI figure.

fig = uifigure;
tb = uitoolbar(fig);

UI figure with an empty toolbar.

Add a push tool to the toolbar. The push tool displays the default icon.

pt = uipushtool(tb);

UI figure that displays a toolbar and a push tool with the default icon.

Add an icon to the push tool by setting the Icon property value to the image file greencircleicon.gif.

pt.Icon = fullfile(matlabroot,'toolbox','matlab','icons','greencircleicon.gif');

UI figure that displays a toolbar and a push tool with a green circle icon.

Create a figure by calling the figure function. Add a toolbar to the figure. It appears below the default figure toolbar.

f = figure;
tb = uitoolbar(f);

Figure that displays the default toolbar and another empty toolbar below it.

Create a push tool in the toolbar. Read a new icon from the indexed image file, matlabicon.gif. Convert the indexed image to an RGB truecolor image array. Add the icon to the push tool by setting the CData property to the truecolor image array.

pt = uipushtool(tb);

[img,map] = imread(fullfile(matlabroot,...
            'toolbox','matlab','icons','matlabicon.gif'));
ptImage = ind2rgb(img,map);

pt.CData = ptImage;

Figure that displays the default toolbar and another toolbar below it that contains a push tool with the MathWorks logo.

Modify the default figure toolbar by adding a push tool to it.

Create a figure by calling the figure function.

f = figure;

Figure with the default toolbar.

Get a handle to the default toolbar by finding all objects of type 'uitoolbar' that are in the figure.

defaultToolbar = findall(f,'Type','uitoolbar')
defaultToolbar = 

  Toolbar (FigureToolBar) with properties:

    Children: [0×0 GraphicsPlaceholder]

Create a push tool in the default toolbar. Create a 16-by-16-by-3 array of random RGB values to be its icon. Add the icon to the push tool by setting the CData property to this array.

pt = uipushtool(defaultToolbar);
ptImage = rand(16,16,3);
pt.CData = ptImage;

Figure with a custom push tool added as the right-most icon in the default toolbar.

Create a push tool that opens the uisetcolor dialog box when you click it. Change the background color of the UI figure to the color selected from the color picker.

First, create a program file called colorPickerPushTool.m. Within the program file:

  • Create a UI figure.

  • Create a toolbar in the UI figure.

  • Create a push tool in the toolbar.

  • Add an appropriate icon to the push tool by setting the Icon property value to the full file path to paintbrush.gif.

  • Create a tooltip for the push tool.

  • Set the ClickedCallback property to a function handle that references a callback function called colorToolClicked.

  • Create a callback function called colorToolClicked. In it, call the uisetcolor function so that a color picker dialog opens when you click the push tool in the toolbar. Set the default color of the color picker to be the color of the UI figure and specify the title of the color picker as 'Select UI Figure Color'. Make the UI figure the current figure so that it displays on top of all other figures.

function colorPickerPushTool
fig = uifigure('Position',[350 500 400 300]);
tb = uitoolbar(fig);

pt = uipushtool(tb);
pt.Icon = fullfile(matlabroot,'toolbox','matlab','icons','paintbrush.gif');
pt.Tooltip = 'Change UI Figure Color';
pt.ClickedCallback = @colorToolClicked;

    function colorToolClicked(src,event)
        c = uisetcolor(fig,'Select UI Figure Color');
        figure(fig)
    end

end

Run colorPickerPushTool. Click the push tool to open the color picker. Then, select a color to change the background color of the UI figure.

colorPickerPushTool

UI figure that displays a paintbrush icon in a toolbar push tool. The color picker dialog box displays to the right of the UI figure.

Input Arguments

collapse all

Parent toolbar, specified as a Toolbar object. Use this property to specify the parent toolbar when creating a push tool or to move an existing tool to a different tool bar.

If a parent toolbar is not specified, then MATLAB creates a push tool in the toolbar of the current figure. The current figure must be one created with the figure function. If the current figure does not have a child toolbar, then MATLAB creates one in the current figure to serve as the parent. MATLAB does not create the push tool in the default figure tool bar.

If a figure created with the figure function does not exist, then MATLAB creates one and calls the uitoolbar function to create a toolbar that serves as the parent.

If you add multiple push tools or toggle tools to a toolbar, they are added left to right, in the order that they are created.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Separator','on' sets the separator line mode to 'on'.

Note

The properties listed here are only a subset. For a complete list, see PushTool Properties.

Icon source or file, specified as a character vector, string scalar, or an m-by-n-by-3 truecolor image array. If you specify a character vector or string scalar, it can be an image file name on the MATLAB path or a full path to an image file. If you plan to share your app with others, put the image file on the MATLAB path to facilitate app packaging. Supported image formats include JPEG, PNG, GIF, and SVG.

If you specify an m-by-n-by-3 array, it is interpreted as a truecolor image array. For more information about truecolor image arrays, see Image Types.

If the image you specify is larger than 16-by-16 pixels, then the Icon property scales the image down so that the entire image fits within the tool. If the image you specify is smaller than 16-by-16 pixels, it is not scaled up to fit the available space.

The Icon property is supported only in App Designer and uifigure-based apps. If the Icon and CData properties are both set, then the CData property is ignored.

Example: 'icon.png' specifies an image file on the MATLAB path.

Example: 'C:\Documents\icon.png' specifies a full path to an image file.

Image array, specified as an m-by-n-by-3 truecolor image array. The values in the array can be:

  • Double-precision values between 0.0 and 1.0

  • uint8 values between 0 and 255

To prevent the image from appearing clipped or distorted, specify an array with m and n less than or equal to 16. If the image is clipped, then only the center 16-by-16 part of the array is used.

Note

For App Designer and uifigure-based apps, use the Icon property to specify push and toggle tool icons instead.

Separator line mode, specified as 'off' or 'on', or as numeric or logical 0 (false) or 1 (true) . 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.

Setting this property to 'on' draws a dividing line to the left of a tool in the toolbar.

Tips

  • Toolbar objects (and their child PushTool and ToggleTool objects) do not appear in figures whose WindowStyle property is set to 'modal'. If a figure containing a toolbar child has its WindowStyle changed to 'modal', the toolbar child still exists in the Children property of the figure. However, the toolbar does not appear while WindowStyle is set to 'modal'.

  • Unlike UIControl push buttons, push tools do not set the figure SelectionType property to 'open' on the second click.

Version History

Introduced before R2006a

expand all

See Also

Functions

Properties