PushTool 属性
控制按钮工具的外观和行为
按钮工具是显示在图窗顶部工具栏中的普通按钮。uipushtool
函数在工具栏中创建一个普通按钮并在显示它之前设置任何必需属性。通过更改属性值,您可以修改按钮外观和行为的某些方面。使用圆点表示法引用特定的对象和属性。
pt = uipushtool; pt.Separator = 'on';
按钮工具
Icon
— 图标源或文件
''
(默认) | 字符向量 | 字符串标量 | m
×n
×3 真彩色图像数组
图标源或文件,指定为字符向量、字符串标量或 m
×n
×3 真彩色图像数组。如果指定字符向量或字符串标量,它可以是 MATLAB® 路径中的图像文件名或图像文件的完整路径。如果您计划与他人共享您的 App,请将图像文件放在 MATLAB 路径中以便于打包 App。支持的图像格式包括 JPEG、PNG、GIF 和 SVG。
如果指定 m
×n
×3 数组,它将解释为真彩色图像数组。有关真彩色图像数组的详细信息,请参阅在 MATLAB 中使用图像类型。
如果您指定的图像大于 16×16 像素,则 Icon
属性会缩小图像,使整个图像适应该工具。如果您指定的图像小于 16×16 像素,则不会放大图像来适应可用空间。
Icon
属性仅在使用 App 设计工具创建的 App 和基于 uifigure
的 App 中受支持。如果同时设置了 Icon
和 CData
属性,则忽略 CData
属性。
示例: 'icon.png'
指定 MATLAB 路径中的一个图像文件。
示例: 'C:\Documents\icon.png'
指定图像文件的完整路径。
CData
— 图像数组
[]
(默认) | m
×n
×3 真彩色图像数组
图像数组,指定为 m
×n
×3 真彩色图像数组。数组中的值可以是:
介于
0.0
和1.0
之间的双精度值介于
0
和255
之间的uint8
值
为防止图像出现裁剪或失真,请指定 m
和 n
小于或等于 16 的数组。如果图像被裁剪,则仅使用数组的中心 16×16 部分。
注意
对于使用 App 设计工具创建的 App 和基于 uifigure
的 App,请改用 Icon
属性来指定按钮工具和切换工具图标。
Separator
— 分隔线模式
'off'
(默认) | on/off 逻辑值
分隔线模式,指定为 'off'
或 'on'
,或者指定为数值或逻辑值 0
(false
) 或 1
(true
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
将此属性设置为 'on'
将在工具栏上的工具左侧绘制一条分隔线。
交互性
Visible
— 可见性状态
'on'
(默认) | on/off 逻辑值
可见性状态,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 显示对象。'off'
- 隐藏对象而不删除它。您仍然可以访问不可见 UI 组件的属性。
要使您的 App 更快地启动,请将不需要在启动时出现的所有 UI 组件的 Visible
属性设置为 'off'
。
Enable
— 工作状态
'on'
(默认) | on/off 逻辑值
工作状态,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
如果您将此属性设置为
'on'
,则 App 用户可以与组件进行交互。如果您将此属性设置为
'off'
,组件将灰显,指示 App 用户无法与其交互,并且它不会触发回调。
Tooltip
— 工具提示
字符向量 | 字符串标量 | 分类数组
工具提示,指定为字符向量、字符串标量或分类数组。使用此属性可在鼠标指针悬停在运行的 App 中的组件上时显示一条消息。当该组件被禁用时,工具提示不会出现。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。
在使用 uifigure
函数创建的图窗中,按钮工具和切换工具支持多行工具提示。要创建多行工具提示,请使用 sprintf
函数在文本中插入换行符 ('\n'
)。例如:
txt = sprintf('Line 1\nLine 2');
然后将 Tooltip
属性设置为 sprintf
返回的值。
在使用 figure
函数创建的图窗中,按钮工具和切换工具不支持多行工具提示。
ContextMenu
— 上下文菜单
空 GraphicsPlaceholder
数组 (默认) | ContextMenu
对象
设置此属性对此类型的对象没有影响。
TooltipString
— 工具提示(不推荐)
字符向量 | 字符串标量 | 分类数组
工具提示,指定为字符向量、字符串标量或分类数组。当您将鼠标悬停在 App 中的组件上时,会出现工具提示。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。
注意
从 R2018b 开始,不推荐使用 TooltipString
属性。请改用 Tooltip
属性。
回调
ClickedCallback
— 工具被点击后的回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
工具被点击后的回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调函数指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
CreateFcn
— 组件创建函数
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
组件创建函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
此属性指定要在 MATLAB 创建组件时执行的回调函数。MATLAB 将在执行 CreateFcn
回调之前初始化所有的组件属性值。如果不指定 CreateFcn
属性,则 MATLAB 执行默认的创建函数。
可在您的 CreateFcn
代码中使用 gcbo
函数获取要创建的组件对象。
对现有组件对象设置 CreateFcn
属性没有任何作用。
DeleteFcn
— 组件删除函数
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
组件删除函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
DeleteFcn
属性指定要在 MATLAB 删除组件时(例如,当用户关闭窗口时)执行的回调函数。MATLAB 会在销毁组件对象的属性之前执行 DeleteFcn
回调。如果不指定 DeleteFcn
属性,则 MATLAB 执行默认的删除函数。
可在您的 DeleteFcn
代码中使用 gcbo
函数获取要删除的组件对象。
回调执行控件
Interruptible
— 回调中断
'on'
(默认) | on/off 逻辑值
回调中断,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
Interruptible
属性确定是否可以中断运行中回调。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
每当 MATLAB 调用回调时,回调都会试图中断正在运行的回调(如果存在)。运行中回调所属对象的 Interruptible
属性决定着是否允许中断:
注意
回调的中断和执行在以下情况下会有不同的表现:
有关演示 Interruptible
和 BusyAction
属性如何影响程序行为的示例,请参阅Interrupt Callback Execution。
BusyAction
— 回调排队
'queue'
(默认) | 'cancel'
回调排队,指定为 'queue'
(默认值)或 'cancel'
。BusyAction
属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
中断回调的来源的 BusyAction
属性决定 MATLAB 如何处理其执行。BusyAction
属性具有下列值:
'queue'
- 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。'cancel'
- 不执行中断回调。
无论何时 MATLAB 调用回调,该回调都会试图中断正在执行的回调。运行中回调所属对象的 Interruptible
属性确定是否允许回调。如果 Interruptible
设置为:
on
- 在下一个时间点(MATLAB 处理队列时)发生中断。这是默认设置。off
-BusyAction
属性(中断回调所属对象的属性)确定 MATLAB 是将中断回调纳入队列还是将其忽略。
有关演示 BusyAction
和 Interruptible
属性如何影响程序行为的示例,请参阅Interrupt Callback Execution。
BeingDeleted
— 删除状态
on/off 逻辑值
此 属性 为只读。
删除状态,以 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值形式返回。
当 DeleteFcn
回调开始执行时,MATLAB 会将 BeingDeleted
属性设置为 'on'
。BeingDeleted
属性将一直保持 'on'
设置状态,直到组件对象不再存在为止。
在查询或修改对象之前,请先检查其 BeingDeleted
属性的值,以确认它不是待删除项。
HitTest
— 变为当前对象的能力(不推荐)
'on'
(默认) | on/off 逻辑值
此属性对此类型的对象没有影响。
父级/子级
Parent
— 父对象
Toolbar
对象
父对象,指定为 Toolbar
对象。使用此属性可在创建工具时指定父工具栏,或将现有工具移动到其他工具栏上。
HandleVisibility
— 对象句柄的可见性
'on'
(默认) | 'callback'
| 'off'
对象句柄的可见性,指定为 'on'
、'callback'
或 'off'
。
此属性控制对象在其父级的子级列表中的可见性。当对象未显示在其父级的子级列表中时,通过搜索对象层次结构或查询属性来获取对象的函数不会返回该对象。这些函数包括 get
、findobj
、gca
、gcf
、gco
、newplot
、cla
、clf
和 close
。HandleVisibility
属性还控制对象句柄是否显示在父图窗的 CurrentObject
属性中。对象即使在不可见时也有效。如果可以访问某个对象,则可以设置和获取其属性,并将其传递给针对对象进行运算的任意函数。
HandleVisibility 值 | 描述 |
---|---|
'on' | 对象句柄始终可见。 |
'callback' | 对象句柄在回调或回调所调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止通过命令行访问对象,但允许回调函数访问对象。 |
'off' | 对象句柄始终不可见。该选项用于防止另一函数无意中对 UI 进行更改。将 HandleVisibility 设置为 'off' 可在执行该函数时暂时隐藏句柄。 |
版本历史记录
在 R2006a 之前推出R2020b: 指定自定义图标
在 App 设计工具中创建的 App 和基于 uifigure
的 App 中,要将自定义图标添加到按钮工具,请设置 Icon
属性。您可以将 Icon
属性指定为图像文件或 m
×n
×3 真彩色数组。
推荐使用 Icon
属性,而不是 CData
属性。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)