本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

ToolbarDropdown 属性

修改坐标区工具栏中的下拉菜单

ToolbarDropdown 属性控制坐标区工具栏中下拉菜单的外观和行为。通过更改属性值,您可以修改下拉菜单的某些方面。

按钮

全部展开

按钮图标,指定为下列值之一。坐标区工具栏将图标显示为灰度图像。MATLAB® 将根据需要缩小图像以适应空间。

  • 文件名 - 将文件名指定为字符向量或字符串标量。文件名前面可以有路径。图像文件必须为 JPEG、GIF 或 PNG 格式。

  • 数组 - 指定表示图像中像素的由 RGB 三元组组成的 m×n×3 数组。

  • 矩阵 - 指定表示图像中像素的 m×n 数值矩阵。

    • 如果值是整数类型,则指定 063 之间的值。值 0 表示不透明,值 63 表示透明。NaN 也表示透明。

    • 如果值的类型为 double,则指定 164 之间的值。值 1 表示不透明,值 64 表示透明。NaN 也表示透明。

  • 预定义图标 - 指定下表中名称之一。

    图标名称结果
    'brush'

    'datacursor'

    'export'

    'rotate'

    'pan'

    'zoomin'

    'zoomout'

    'restoreview'

    'none'没有图标

示例: btn.Icon = 'icon.png'

示例: btn.Icon = 'C:\Documents\icon.png'

示例: btn.Icon = 'rotate'

可见性状态,指定为下列值之一:

  • 'on' - 显示对象。

  • 'off' - 隐藏对象而不删除它。您仍然可以访问不可见对象的属性。

回调

全部展开

对象创建函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅回调定义

此属性指定要在 MATLAB 创建对象时执行的回调函数。MATLAB 将在执行 CreateFcn 回调之前初始化所有属性值。如果不指定 CreateFcn 属性,则 MATLAB 执行默认的创建函数。

对现有组件设置 CreateFcn 属性没有任何作用。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参数访问正在创建的对象。否则,使用 gcbo 函数访问该对象。

对象删除函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅回调定义

此属性指定在 MATLAB 删除对象时要执行的回调函数。MATLAB 在销毁对象的属性之前执行 DeleteFcn 回调。如果不指定 DeleteFcn 属性,则 MATLAB 执行默认的删除函数。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参数访问要删除的对象。否则,使用 gcbo 函数访问该对象。

回调执行控件

全部展开

回调中断,指定为 'on''off'Interruptible 属性确定是否可以中断运行中回调。

有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

每当 MATLAB 调用回调时,回调都会试图中断正在运行的回调(如果存在)。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。Interruptible 属性具有下列两个可能的值:

  • 'on' - 允许其他回调中断对象的回调。中断发生在 MATLAB 处理队列的下一个位置,例如当存在 drawnowfigureuifiguregetframewaitforpause 命令时。

    • 如果运行中回调包含以上命令之一,则 MATLAB 将在该时刻停止执行回调并执行中断回调。当中断回调完成时,MATLAB 将恢复执行运行中回调。

    • 如果运行中回调不包含以上命令之一,则 MATLAB 执行完当前回调,不会出现任何中断。

  • 'off' - 阻止所有中断尝试。由中断回调所属的对象的 BusyAction 属性决定是放弃该中断回调还是将其放入队列中。

注意

回调的中断和执行在以下情况下会有不同的表现:

  • 如果中断回调是 DeleteFcnCloseRequestFcnSizeChangedFcn 回调,则无论是否存在 Interruptible 属性值都会发生中断。

  • 如果运行中回调当前正在执行 waitfor 函数,则无论是否存在 Interruptible 属性值都会发生中断。

  • Timer 对象根据排定时间执行,而不管 Interruptible 属性值如何。

发生中断时,MATLAB 不保存属性状态或显示内容。例如,gcagcf 命令返回的对象可能会在另一个回调执行时发生改变。

回调排队,指定为 'queue''cancel'BusyAction 属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

无论何时 MATLAB 调用回调,该回调都会试图中断运行中回调。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。如果不允许中断,则中断回调所属对象的属性 BusyAction 将决定是放弃该回调还是将回调放入队列中。以下是 BusyAction 属性的可能值:

  • 'queue' - 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。

  • 'cancel' - 不执行中断回调。

此属性为只读

删除状态,以 'off''on' 形式返回。当 DeleteFcn 回调开始执行时,MATLAB 会将 BeingDeleted 属性设置为 'on'BeingDeleted 属性将一直保持 'on' 设置状态,直到组件对象不再存在为止。

在查询或修改对象之前,请先检查其 BeingDeleted 属性的值,以确认它不是待删除项。

父级/子级

全部展开

父容器,指定为 AxesToolbar 对象。

子按钮,指定为 ToolbarPushButton 对象的图形数组。使用此属性查看下拉菜单中包含的按钮列表。

父级的 Children 属性中对象句柄的可见性,指定为下列值之一:

  • 'on' - 对象句柄始终可见。

  • 'off' - 对象句柄始终不可见。该选项用于防止另一函数无意中对其进行更改。将 HandleVisibility 设置为 'off' 可在执行该函数时暂时隐藏句柄。

  • 'callback' - 对象句柄在回调或回调所调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止通过命令行访问对象,但允许回调函数访问对象。

如果父级的 Children 属性中未列出该对象,则通过搜索对象层次结构或查询句柄属性获取对象句柄的函数无法返回该对象。此类函数的示例包括 getfindobjgcagcfgconewplotclaclfclose 函数。

隐藏的对象句柄仍有效。将根 ShowHiddenHandles 属性设置为 'on' 以列出所有对象句柄,而不管其 HandleVisibility 属性设置如何。

标识符

全部展开

此属性为只读

图形对象的类型,以 'toolbardropdown' 形式返回。

对象标识符,指定为字符向量或字符串标量。您可以指定唯一的 Tag 值作为对象的标识符。如果需要访问您代码中其他位置的对象,可以使用 findobj 函数基于 Tag 值搜索对象。

用户数据,指定为任何 MATLAB 数组。例如,您可以指定标量、向量、矩阵、元胞数组、字符数组、表或结构体。使用此属性存储对象上的任意数据。

如果您在 App 设计工具中工作,请在该 App 中创建公共或私有属性以共享数据,而不是使用 UserData 属性。有关详细信息,请参阅在用 App 设计工具创建的 App 内共享数据

未使用的属性

全部展开

上下文菜单,指定为 ContextMenu 对象。

注意

下拉列表不使用此属性。设置此属性不会产生任何影响。

鼠标点击回调,指定为函数句柄、元胞数组或字符向量。

注意

下拉列表不使用此属性。设置此属性不会产生任何影响。

在 R2019b 中推出