Main Content

uitoggletool

在工具栏中创建切换工具

说明

tt = uitoggletool 在当前图窗的工具栏中创建切换工具,并返回 ToggleTool 对象。

当前图窗必须是使用 figure 函数创建的图窗。如果当前图窗没有子工具栏,则 MATLAB® 会在当前图窗中创建一个工具栏作为父级。如果用 figure 函数创建的图窗不存在,则 MATLAB 会创建一个图窗,并调用 uitoolbar 函数来创建一个工具栏作为父级。

切换工具有两种状态:'off''on'。每次点击按钮时,按钮的状态都会发生变化。

示例

tt = uitoggletool(parent) 在指定的父工具栏中创建一个切换工具。

示例

tt = uitoggletool(___,Name,Value) 创建一个切换工具,其中包含使用一个或多个名称-值对组参数指定的属性值。用上述任一语法指定名称-值对组。

示例

全部折叠

通过调用 figure 函数来创建一个图窗。向图窗添加一个工具栏。它出现在默认图窗工具栏下方。

f = figure;
tb = uitoolbar(f);

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

在工具栏中创建一个切换工具。创建一个由零组成的 16×16×3 数组作为其图标。将 CData 属性值设置为此数组,以在切换工具中显示黑色方形图标。

tt = uitoggletool(tb);
ttImage = zeros(16,16,3);
tt.CData = ttImage;

Figure that displays the default toolbar and a custom toolbar below it. The custom toolbar displays a black square as a toggle tool.

创建一个切换工具,每次点击它都会更改其图标和 UI 图窗的背景颜色。

首先,创建一个名为 toggleColor.m 的程序文件。在该程序文件中:

  • 创建一个 UI 图窗。

  • 在 UI 图窗中创建一个工具栏。

  • 向工具栏添加一个切换工具。

  • 创建一个蓝色真彩色图像数组。将切换工具的 Icon 属性值设置为此数组。

  • ClickedCallback 属性设置为引用名为 toggleFigureColor 的回调函数的函数句柄。

  • 创建一个名为 toggleFigureColor 的回调函数。在其中查询切换工具的 State 属性的值。如果状态为 'on',则图窗的背景颜色将更改为蓝色,且切换工具将设置为黑色。同样,如果状态为 'off',则图窗背景颜色将更改为黑色,且切换工具将设置为蓝色。

function toggleColor
fig = uifigure;
tb = uitoolbar(fig);
tt = uitoggletool(tb);

ttImage = zeros(16,16,3);
ttImage(:,:,3) = ones(16);
tt.Icon = ttImage;
tt.ClickedCallback = @toggleFigureColor;

    function toggleFigureColor(src,event)
        state = src.State;
        
        if strcmp(state,'on')
            fig.Color = 'blue';
            tt.Icon = zeros(16,16,3);
        else
            fig.Color = 'black';
            tt.Icon = ttImage;
        end
        
    end

end

运行 toggleColor。点击切换工具可更改图窗的背景颜色。

toggleColor
UI figure that displays a toolbar and a toggle tool with a blue square icon.

输入参数

全部折叠

父工具栏,指定为 Toolbar 对象。使用此属性可在创建切换工具时指定父工具栏,或将现有工具移动到其他工具栏上。

如果未指定父工具栏,则 MATLAB 会在当前图窗的工具栏中创建一个切换工具。当前图窗必须是使用 figure 函数创建的图窗。如果当前图窗没有子工具栏,则 MATLAB 会在当前图窗中创建一个作为父级。MATLAB 不会在默认图窗工具栏中创建切换工具。

如果用 figure 函数创建的图窗不存在,则 MATLAB 会创建一个图窗,并调用 uitoolbar 函数创建一个工具栏作为父级。

如果向工具栏添加多个按钮工具或切换工具,它们将按照创建的顺序从左到右添加。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'Separator','on' 将分隔线模式设置为 'on'

注意

此处所列的属性只是一部分。有关完整列表,请参阅 ToggleTool 属性

切换按钮状态,指定为 'off''on',或者指定为数值或逻辑值 0 (false) 或 1 (true)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

此属性值为 'on' 时,切换按钮显示为处于压下(按下)位置。此属性值为 'off' 时,切换按钮显示为处于抬起位置。更改状态会导致执行相应的 OnCallbackOffCallback 函数。

图标源或文件,指定为字符向量、字符串标量或 m×n×3 真彩色图像数组。如果指定字符向量或字符串标量,它可以是 MATLAB 路径中的图像文件名或图像文件的完整路径。如果您计划与他人共享您的 App,请将图像文件放在 MATLAB 路径中以便于打包 App。支持的图像格式包括 JPEG、PNG、GIF 和 SVG。

如果指定 m×n×3 数组,它将解释为真彩色图像数组。有关真彩色图像数组的详细信息,请参阅图像类型

如果您指定的图像大于 16×16 像素,则 Icon 属性会缩小图像,使整个图像适应该工具。如果您指定的图像小于 16×16 像素,则不会放大图像来适应可用空间。

Icon 属性仅在使用 App 设计工具创建的 App 和基于 uifigure 的 App 中受支持。如果同时设置了 IconCData 属性,则忽略 CData 属性。

示例: 'icon.png' 指定 MATLAB 路径中的一个图像文件。

示例: 'C:\Documents\icon.png' 指定图像文件的完整路径。

图像数组,指定为 m×n×3 真彩色图像数组。数组中的值可以是:

  • 介于 0.01.0 之间的双精度值

  • 介于 0255 之间的 uint8

为防止图像出现裁剪或失真,请指定 mn 小于或等于 16 的数组。如果图像被裁剪,则仅使用数组的中心 16×16 部分。

注意

对于使用 App 设计工具创建的 App 和基于 uifigure 的 App,请改用 Icon 属性来指定按钮工具和切换工具图标。

提示

  • WindowStyle 属性设置为 'modal' 的图窗中,Toolbar 对象(及其子级 PushToolToggleTool 对象)不显示。如果一个含有工具栏子对象的图窗的 WindowStyle 更改为 'modal',则该工具栏子对象仍然存在于图窗的 Children 属性中。但是,在 WindowStyle 设置为 'modal' 时,工具栏不会出现。

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

函数

属性