Figure 属性
控制图窗窗口的外观和行为
此处列出的属性适用于在 GUIDE 中使用的图窗或使用 figure
函数创建的图窗。对于使用 uifigure
函数创建的图窗,请参阅 UI Figure 属性。
图窗是图或用户界面组件的容器。图窗属性控制特定图窗实例的外观和行为。要修改图窗的各个方面,请更改属性值。使用圆点表示法查询和设置属性。
f = figure; u = f.Units; f.Units = 'inches';
窗口外观
MenuBar
— Figure 菜单栏显示方式
'figure'
(默认) | 'none'
Figure 菜单栏显示方式,指定为 'figure'
或 'none'
。MenuBar
属性用于在图窗窗口顶部显示或隐藏默认菜单。指定 'figure'
可显示菜单栏。指定 'none'
将其隐藏。
此属性仅影响默认菜单,不影响通过 uimenu
命令定义的菜单。
WindowStyle
属性设置为 'Modal'
的图窗中,不显示菜单栏。如果一个含有 uimenu 子菜单项的图窗更改为 'Modal'
,则子菜单项仍然存在于图窗的 Children
属性中。但是,在 WindowStyle
设置为 'Modal'
时,这些菜单不会显示出来。
注意
如果不想在图窗中显示默认菜单,则在创建图窗时请将此属性设置为 'none'
。
ToolBar
— Figure 工具栏显示
'auto'
(默认) | 'figure'
| 'none'
Figure 工具栏显示方式,指定为下列值之一:
'auto'
- 使用和MenuBar
属性相同的值。'figure'
- 显示工具栏。'none'
- 不显示工具栏。
此属性仅影响默认工具栏。它不影响其他工具栏,例如相机工具栏或绘图编辑工具栏。从图窗视图菜单选择图窗工具栏时,会将此属性设置为 'figure'
。
工具栏不在 WindowStyle
属性设置为 'Modal'
的图窗中显示。如果一个含有工具栏的图窗变为 'Modal'
,则工具栏子菜单项仍将存在于图窗的 Children
属性中。但是,在 WindowStyle
设置为 'Modal'
时,工具栏不会显示出来。
注意
如果想要隐藏默认工具栏,请在创建图窗时将此属性设置为 'none'
。
DockControls
— 交互式图窗停靠
'on'
(默认) | 'off'
交互式图窗停靠,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 图窗可以停靠在 MATLAB® 桌面上。菜单栏中的桌面 > 停靠图窗菜单项和停靠图窗按钮会启用。
'off'
- MATLAB 禁用桌面 > 停靠图窗菜单项并且不显示图窗停靠按钮。如果
WindowStyle
设置为'docked'
,则不能将DockControls
属性设置为'off'
。
MATLAB Online™ 不支持设置 DockControls
属性。
Color
— 背景色
RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
背景颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。如果指定 'none'
,背景色将在屏幕上显示为黑色,但如果您打印图窗,则会将图窗窗口视为透明而打印背景。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符串标量或字符向量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"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" | |
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[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" |
数据类型: double
| char
WindowStyle
— 窗口样式
'normal'
(默认) | 'modal'
| 'docked'
窗口样式,指定为下列值之一:
'normal'
- 此图窗窗口独立于其他窗口,并且在显示图窗时可以访问其他窗口。'modal'
- 该图窗显示在所有现有图窗窗口的上方,并使这些窗口变得无法访问(只要顶层图窗存在并保持模态)。但是,任何在模态图窗之后创建的新图窗都会显示出来。存在多个模态窗口时,最新创建的窗口将会保持焦点并位于所有其他窗口之上,直到变得不可见、恢复为正常窗口样式或被删除。此时,焦点会重新回到上次具有焦点的窗口。
'docked'
- 图窗显示在桌面或文档窗口中。如果WindowStyle
属性设置为'docked'
,则无法将DockControls
属性设置为'off'
。MATLAB Online 中不支持'docked'
选项。
注意
以下是 WindowStyle
属性的一些重要特性和一些推荐的最佳做法:
创建 UI 窗口时,应始终指定
WindowStyle
属性。如果还想要设置图窗的Resize
、Position
或OuterPosition
属性,先要设置WindowStyle
属性。您可以随时更改图窗的
WindowStyle
属性,包括图窗可见并包含子图窗的情况。但是,在某些系统上,设置该属性可能会导致图窗闪烁或者消失后重新显示,具体取决于系统的正常窗口和模态窗口的实现。为实现最佳视觉效果,应在创建时或图窗不可见时设置WindowStyle
属性。对图窗调用
reset
并不会改变WindowStyle
属性的值。
模态窗口样式行为
WindowStyle
设为 'modal'
时,图窗窗口将会捕获所有 MATLAB 窗口(只要可见)上的全部键盘和鼠标操作。属于应用程序而非 MATLAB 的窗口不受影响。
模态图窗获得焦点时键入 Ctrl+C 会导致图窗恢复到 'normal'
WindowStyle
属性设置。这样用户可以在命令行键入内容。
WindowStyle
属性设置为 'modal'
并且 Visible
属性设置为 'off'
的图窗在 MATLAB 使它们变得可见之前不会以模态方式运行。因此,您可以隐藏模态窗口供以后重用,而不用销毁它。
模态图窗不显示菜单子级、内置菜单或工具栏。但是,在模态图窗中创建菜单或在具有菜单子级的图窗上将 WindowStyle
属性设置更改为 'modal'
并不是错误。Menu
对象会存在,而且图窗会保留它们。如果您将图窗的 WindowStyle
属性重置为 'normal'
,则会显示菜单。
WindowState
— 窗口状态
'normal'
(默认) | 'minimized'
| 'maximized'
| 'fullscreen'
窗口状态,指定为下列值之一:
'normal'
- 窗口显示为正常状态。'minimized'
- 窗口被折叠,但您仍可以执行命令来获取或设置其属性、添加子级或在窗口中创建绘图。'maximized'
- 窗口填满屏幕。操作系统提供的最小化、还原和关闭按钮出现在窗口的角落。如果窗口在正常状态下显示菜单和工具栏,则在这一状态下也会显示二者。'fullscreen'
- 窗口填满屏幕。但是,操作系统提供的最小化、还原和关闭按钮将被隐藏。如果窗口在正常状态下显示菜单和工具栏,则在这一状态下也会显示二者。
点击操作系统提供的最小化、最大化或还原按钮将对 WindowState
属性进行相应的设置。按 Ctrl+F11(Windows® 和 Linux®)或 Ctrl+Command+f (Mac OS) 可以切换 'fullscreen'
状态。
不支持对已停靠的图窗或在 MATLAB Online 中设置 WindowState
属性。
位置和大小
Position
— 可绘制区域的位置和大小
[left bottom width height]
可绘制区域的位置和大小,指定为 [left bottom width height]
形式的向量。此区域不包括图窗边框、标题栏、菜单栏和工具栏。
此表介绍 Position
向量中的每个元素。
元素 | 描述 |
---|---|
left | 从主画面左边缘到窗口的内部左边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
bottom | 从主画面下边缘到窗口的内部下边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
width | figure 的左右内部边缘之间的距离。 |
height | 窗口的上下内部边缘之间的距离。 |
所有测量值都采用 Units
属性指定的单位。
图窗停靠时不能指定图窗的 Position
属性。
在 MATLAB Online 中,Position
向量的 bottom
和 left
元素被忽略。
要放置包括边框、标题栏、菜单栏和工具栏在内的整个窗口,请使用 OuterPosition
属性。
注意
Windows 操作系统会强制应用最小窗口宽度和最大窗口大小。如果您指定的图窗尺寸超出这些限制,将按照这些限制而不是指定的尺寸显示图窗。
Units
— 测量单位
'pixels'
(默认) | 'normalized'
| 'inches'
| 'centimeters'
| 'points'
| 'characters'
测量单位,指定为下表中的值之一。
单位值 | 描述 |
---|---|
'pixels' (默认值) | 像素。 从 R2015b 开始,以像素为单位的距离不再依赖 Windows 和 Macintosh 系统上的系统分辨率:
在 Linux 系统上,一个像素的大小由系统分辨率确定。 |
'normalized' | 这些单位依据父容器进行归一化。容器的左下角映射到 (0,0) ,右上角映射到 (1,1) 。 |
'inches' | 英寸。 |
'centimeters' | 厘米。 |
'points' | 磅。1 磅等于 1/72 英寸。 |
'characters' | 这些单位基于图形根对象的默认 uicontrol 字体:
要访问默认的 uicontrol 字体,请使用 |
MATLAB 从父对象的左下角测量所有单位。
此属性会影响 Position
属性。如果更改 Units
属性,请考虑在完成计算后将其值还原为默认值,以免影响采用默认值的其他函数。
指定 Units
和 Position
属性的顺序具有以下影响:
如果您在
Position
属性之前指定Units
,则 MATLAB 会使用您指定的单位来设置Position
。如果您在
Position
属性之后指定Units
属性,则 MATLAB 会使用默认的Units
来设置 position。然后,MATLAB 将Position
值转换为以您指定的单位表示的等价值。
InnerPosition
— 可绘制区域的位置和大小
[left bottom width height]
可绘制区域的位置和大小,指定为 [left bottom width height]
形式的向量。此区域不包括图窗边框、标题栏、菜单栏和工具栏。所有测量值都采用 Units
属性指定的单位。
此属性值等同于 Position
属性值。
OuterPosition
— 外部边界的位置和大小
[left bottom width height]
外部边界的位置和大小,指定为 [left bottom width height]
形式的向量。此属性定义由图窗的外部边界围起的区域(包括边框、标题栏、菜单栏和工具栏)。
此表介绍该向量中的每个元素。
元素 | 描述 |
---|---|
left | 从主画面的左边缘到 figure 窗口的外部左边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
bottom | 从主画面下边缘到 figure 窗口的外部下边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
width | figure 的左右外部边缘之间的距离。 |
height | figure 的上下外部边缘之间的距离。 |
所有测量值都采用 Units
属性指定的单位。
图窗停靠时不能指定图窗的 OuterPosition
属性。
注意
Windows 操作系统会强制应用最小窗口宽度和最大窗口大小。如果您指定的图窗尺寸超出这些限制,将按照这些限制而不是指定的尺寸显示图窗。
Clipping
— 裁剪子组件(不推荐)
'on'
(默认) | on/off 逻辑值
此属性不会对图窗产生任何影响。
Resize
— 可调整大小的图窗
'on'
(默认) | on/off 逻辑值
可调整大小的图窗,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
当此属性设置为 'on'
时,则可调整图窗大小。否则将无法调整其大小。
绘图
Colormap
— 图窗坐标区内容的颜色图
parula (默认) | 由 RGB 三元组组成的 m
×3
数组
NextPlot
— 有关如何添加下一绘图的指令
'add'
(默认) | 'new'
| 'replace'
| 'replacechildren'
有关如何添加下一绘图的指令,指定为 'add'
、'new'
、'replace'
或 'replacechildren'
。
此表介绍每个值的作用。
属性值 | 效果 |
---|---|
'new' | 创建一个新图窗并将其用作当前图窗。 |
'add' | 在不清空或重置当前图窗的前提下添加新的图形对象。 |
'replacechildren' | 在添加新对象之前删除所有未隐藏的坐标区对象。不重置图窗属性。 与使用 |
'replace' | 添加新的图形对象之前,删除所有的坐标区对象并将图窗属性重置为它们的默认值。 与使用 |
考虑使用 newplot
函数处理 NextPlot
属性。有关详细信息,请参阅坐标区的 NextPlot
属性和为绘图准备图窗和坐标区。
Renderer
— 渲染器
'opengl'
(默认) | 'painters'
用于屏幕显示和打印的渲染器,指定为下列值之一:
'opengl'
- OpenGL® 渲染器。此选项允许 MATLAB 访问图形硬件(如果您的系统上有的话)。OpenGL 渲染器按从前到后的顺序显示对象,如监视器上所示。当与监视器平面处于同一位置时,线条始终会绘制在面的前端。'painters'
- Painters 渲染器。该选项非常适合二维视图中的坐标区。在二维模式下,Painters 渲染器按子顺序(指定的顺序)为图形对象排序。在三维模式下,Painters 渲染器按从前到后的顺序为对象排序。但是,它可能无法正确地以三维方式绘制相交的多边形。
注意
在以后的版本中将会删除 Renderer
属性。有关详细信息,请参阅版本历史记录。
MATLAB Online 不支持设置 Renderer
属性。
OpenGL 硬件和软件实现
所有运行 MATLAB 的计算机上都提供 OpenGL,因为 MATLAB 中内置了软件版本的 OpenGL。但是,如果您的图形硬件支持硬件加速版本的 OpenGL,则 MATLAB 会自动使用硬件加速版本来提高性能。
在某些情况下,MATLAB 自动使用软件 OpenGL,即使提供了硬件版本也是如此。例如,如果 MATLAB 检测到图形硬件存在已知的驱动程序问题或您正在 Windows 中使用虚拟机或远程桌面,它将会使用该软件版本。
MATLAB 在找不到可用的 OpenGL 库时会发出警告。
软件 OpenGL 选择
要从硬件切换到软件 OpenGL,请执行以下操作:
在 Linux 系统中,使用命令
matlab -softwareopengl
启动 MATLAB。在 Windows 系统中,请在 MATLAB 中执行命令
opengl software
,或者使用命令matlab -softwareopengl
启动 MATLAB。在 Macintosh 系统上,不支持软件 OpenGL。
可以使用以下软件版本:
在 Linux 系统上,MATLAB 使用 MATLAB 发行版中包含的 OpenGL 软件实现。
在 Windows 上,OpenGL 是作为操作系统的一部分提供的。如果您在使用 OpenGL 时遇到问题,请与您的图形驱动程序供应商联系,以获取最新合格版本的 OpenGL。
在 Macintosh 系统上,无法使用软件 OpenGL。
确定 OpenGL 库版本
要确定 MATLAB 正在您的系统上使用的 OpenGL 库的版本和供应商,请调用 rendererinfo
函数。例如,此命令将获取当前坐标区的信息并将其存储在名为 info
的结构体中。
info = rendererinfo(gca)
此结构体还在 GraphicsRenderer
字段中提供图形渲染器的名称。例如,如果 MATLAB 使用的是硬件加速 OpenGL,该字段将返回 'OpenGL Hardware'
。如果 MATLAB 使用的是软件 OpenGL,该字段将返回 'OpenGL Software'
。
XServer 连接中断
使用 Linux 时,如果与 XServer 的连接中断,则 MATLAB 可能会因分段违规而崩溃。如果出现这种情况,请确保系统安装了最新的 XServer。
在 Linux 系统中,还可以尝试升级 OpenGL 驱动程序,或者使用下面的命令通过软件 OpenGL 启动 MATLAB:
matlab -softwareopengl
RendererMode
— 渲染器选择
'auto'
(默认) | 'manual'
渲染器选择,指定为下列项之一:
'auto'
- MATLAB 将根据图窗中图形对象的大小和复杂性来选择用于打印和屏幕显示的渲染方法。'manual'
- MATLAB 使用由Renderer
属性所指定的渲染器。
如果将 Renderer
属性显式设置为 'painters'
或 'opengl'
,则 MATLAB 会将 RendererMode
属性设置为 'manual'
。
注意
在以后的版本中将会删除 RendererMode
属性。有关详细信息,请参阅版本历史记录。
GraphicsSmoothing
— 坐标区图形平滑处理
'on'
(默认) | on/off 逻辑值
坐标区图形平滑处理,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
平滑处理可减少坐标区图形中的锯齿。如果 GraphicsSmoothing
设为 'on'
并且下列任一条件为 true,则 MATLAB 将对坐标区图形(和坐标区标尺)应用平滑处理技术:
Renderer
属性设置为'painters'
。Renderer
属性设置为'opengl'
并且您的硬件卡支持 OpenGL。
图形平滑处理 | 无图形平滑处理 |
---|---|
|
|
(放大的视图)
| (放大的视图)
|
如果坐标区图形主要包含垂直线条或水平线条,请考虑将 GraphicsSmoothing
属性设置为 'on'
并将线条的 AlignVertexCenters
属性设置为 'on'
。平滑处理技术会牺牲一些清晰度以获得平滑效果,这一特点在此类图形中可能尤为明显。
注意
图形平滑处理对文本没有影响。无论 GraphicsSmoothing
属性设置为何值,MATLAB 都会对文本进行平滑处理。
MATLAB Online 不支持设置 GraphicsSmoothing
属性。
打印和导出
PaperPosition
— 打印或保存时页面上的图窗大小和位置
[left bottom width height]
形式的四元素向量
打印或保存时页面上的图窗大小和位置,指定为 [left bottom width height]
形式的四元素向量。
left
和bottom
值 - 控制从页面左下角到图窗左下角的距离。以非页面格式(例如 PNG 或 EPS 格式)保存图窗时,这些值将被忽略。width
和height
值 - 控制图窗大小。如果宽度和高度值太大,则图窗可能无法达到指定的大小。如果图窗未达到特定大小,则图窗中的任何 UI 组件(例如 UI 控件或 UI 表)可能不会如期保存或打印。
PaperUnits
属性确定 PaperPosition
值的测量单位。考虑将 PaperUnits
属性设置为 'normalized'
。该设置使 MATLAB 能够自动改变图窗大小,从而无论页面尺寸如何均以同样的相对量占据打印页面。
示例: figure('PaperPosition',[.25 .25 8 6])
设置图窗的大小和位置以打印到 [.25 .25 8 6]
。
PaperPositionMode
— 指示在打印或保存时使用显示的图窗大小的指令
'auto'
(默认) | 'manual'
指示在打印或保存时使用显示的图窗大小的指令,指定为 'auto'
或 'manual'
。
'auto'
- 打印或保存的图窗大小与显示的图窗大小相匹配。PaperPosition
属性的width
和height
值等于显示的图窗大小。left
和bottom
值使图窗居中。如果显示的图窗大小发生变化,PaperPosition
属性将自动更新为相应的尺寸和位置值。'manual'
- 打印或保存的图窗大小与显示的图窗大小可能不匹配。如果您要使用不同于所显示的大小打印或保存图窗,或者您不希望图窗居中置于打印或保存的页面上,请使用此选项。将PaperPosition
属性设置为所需的大小和位置。如果显示的图窗大小发生变化,PaperPosition
属性不会自动更新。
要生成与显示的图窗具有相同大小和分辨率 (DPI) 的输出,请将图窗的 PaperPositionMode
属性设置为 'auto'
,并使用 print
函数与 -r0
选项保存图窗。-r0
选项可确保输出分辨率与显示分辨率相同。如果这两种分辨率不同,则以测量单位(英寸、厘米、磅)计,生成的输出大小与显示的图窗大小一致,但在像素上不一致。例如,如果显示分辨率为 100 DPI,则一个 4×5 英寸图窗有 400×500 个像素。如果输出分辨率为 200 DPI,则以英寸单位计,打印或保存的图窗具有相同大小,但具有 800×1000 个像素。
注意
从 R2016a 开始,默认值为 'auto'
。以前的默认值为 'manual'
。
要更改默认值,请使用下列方法之一。
设置打印预设。打印预设将应用于所有 MATLAB 会话。可以将打印预设设置为
'auto'
或'manual'
,例如:要查询当前打印预设值,请使用以下命令。如果设置了预设,此命令将返回matlab.graphics.internal.setPrintPreferences('DefaultPaperPositionMode','manual')
'auto'
或'manual'
。如果未设置预设,此命令将返回'unset'
。matlab.graphics.internal.getPrintPreferences
在根对象上设置默认值。此选项只影响当前 MATLAB 会话中的新图窗,例如:
set(groot,'defaultFigurePaperPositionMode','manual')
PaperSize
— 自定义页面大小
[width height]
形式的二元素向量
打印图窗或将其保存为分页格式(PDF 和 PostScript® 格式)时的自定义页面大小,指定为 [width height]
形式的二元素向量。在美国,默认值为 [8.5 11]
。在欧洲和亚洲,默认值为 [21 29.7]
。
注意
如果您将图窗保存为文件,则 PaperSize
属性仅影响 PDF 和 PostScript 文件格式。其他文件格式将忽略此属性。使用 PaperPosition
属性控制所保存的图窗的大小。
PaperUnits
属性确定 PaperSize
属性的测量单位。如果 PaperUnits
属性设置为 'normalized'
,则您无法设置 PaperSize
属性。试图这样做会抛出错误。
指定 PaperSize
属性会将 PaperType
属性设置为相应的类型(如果存在),否则设置为 'custom'
。
PaperUnits
— 用于 PaperSize
和 PaperPosition
的单位
'inches'
| 'centimeters'
| 'normalized'
| 'points'
用于 PaperSize
和 PaperPosition
的单位,指定为下列值之一:
'inches'
- 以英寸为单位的值。这是区域设置为 United States 时的默认值。'normalized'
- 归一化的单位。页面的左下角映射到(0,0)
,右上角映射到(1,1)
。'centimeters'
- 以厘米为单位的值。这是区域设置为 Europe 或 Asia 时的默认值。'points'
- 以磅为单位的值。1 磅等于 1/72 英寸。
注意
如果您更改 PaperUnits
属性的值,则最好在完成计算后将该属性恢复为其原始值,以免影响其他假定 PaperUnits
属性未更改的函数。
PaperOrientation
— 页面方向
'portrait'
(默认) | 'landscape'
打印图窗或将其保存为分页格式(PDF 和 PostScript 格式)时的页面方向,指定为下列值之一:
'portrait'
- 以页面的最长尺寸为纵向。'landscape'
- 以页面的最长尺寸为横向。
有关详细信息,请参阅 orient
函数。
注意
使用文件 > 另存为时,只有 PDF 和全页 PS 格式使用 PaperOrientation
属性。其他格式会忽略这些值。
PaperType
— 标准页面大小
'usletter'
| 'uslegal'
| 'tabloid'
| 'a0'
| 'a1'
| 'a2'
| 'a3'
| ...
打印图窗或将其保存为分页格式(PDF 和 PostScript 格式)时的标准页面大小,指定为下表中的值之一。指定 PaperType
属性会将 PaperSize
属性设置为相应的页面大小。
值 | 页面大小(宽 x 高) |
---|---|
| 8.5×11 英寸(美国的默认值) |
| 8.5×14 英寸 |
| 11×17 英寸 |
| 84.1×118.9 厘米 |
| 59.4×84.1 厘米 |
| 42×59.4 厘米 |
| 29.7×42 厘米 |
| 21×29.7 厘米(欧洲和亚洲的默认值) |
| 14.8×21 厘米 |
| 102.9×145.6 厘米 |
| 72.8×102.8 厘米 |
| 51.4×72.8 厘米 |
| 36.4×51.4 厘米 |
| 25.7×36.4 厘米 |
| 18.2×25.7 厘米 |
| 9×12 英寸 |
| 12×18 英寸 |
| 18×24 英寸 |
| 24×36 英寸 |
| 36×48 英寸 |
| 8.5×11 英寸 |
| 11×17 英寸 |
| 17×22 英寸 |
| 22×34 英寸 |
| 34×43 英寸 |
'<custom>' | 自定义页面大小。使用 |
InvertHardcopy
— 打印或保存时的图窗背景色
'on'
(默认) | on/off 逻辑值
保存或打印时的图窗背景颜色,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 将图窗背景色和坐标区背景色更改为白色。图窗的文本和其他元素也可能会更改颜色以改善所生成输出的外观。'off'
- 使用与所显示颜色相同的颜色。若要更改显示的图窗背景色,请使用图窗的Color
属性。若要更改坐标区背景色,请使用坐标区的Color
属性。
鼠标指针
Pointer
— 指针符号
'arrow'
(默认) | 'ibeam'
| 'crosshair'
| 'watch'
| 'topl'
| 'custom'
| ...
指针符号,指定为下表中的值之一,或指定为 'custom'
。符号的外观与操作系统相关。
值 | 生成的符号(与系统相关) |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
自定义指针符号
要创建自定义指针符号,请以编程方式将 Pointer
属性设置为 'custom'
并使用 PointerShapeCData
属性定义符号。有关详细信息,请参阅 PointerShapeCData
属性。
局限性
Pointer
属性指定的指针符号不会显示在使用 uihtml
函数创建的 HTML UI 组件上。
PointerShapeCData
— 自定义指针符号
16×16 矩阵 (默认) | 32×32 矩阵
自定义指针符号,指定为 16×16 矩阵(对于 16×16 像素指针)或指定为 32×32 矩阵(对于 32×32 像素指针)。当您将 Pointer
属性设置为 'custom'
时,图窗将使用此指针符号。
矩阵中的每个元素分别为指针中的 1 个像素定义亮度级别,其中元素可以具有以下值之一:
1
- 黑色像素。2
- 白色像素。NaN
- 透明像素,这样底层屏幕内容就能显示出来。
矩阵的元素 (1,1)
与指针左上角的像素对应。
PointerShapeHotSpot
— 指针的活动像素
[1 1]
(默认) | 二元素向量
指针的活动像素,指定为二元素向量。该向量包含 PointerShapeCData
矩阵中特定元素的行和列索引,该元素与所需的活动像素对应。默认值 [1 1]
对应于指针左上角的像素。
如果您指定的值位于 PointerShapeCData
矩阵范围外,则指针将改用默认活动像素 [1 1]
。
仅当 Pointer
属性设置为 'custom'
时,此属性才适用。
交互性
Visible
— 可见性状态
'on'
(默认) | on/off 逻辑值
可见性状态,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 显示对象。'off'
- 隐藏对象而不删除它。您仍然可以访问不可见 UI 组件的属性。
要使您的 App 更快地启动,请将不需要在启动时出现的所有组件的 Visible
属性设置为 'off'
。
更改不可见的容器的大小将在该容器变得可见时触发 SizeChangedFcn
回调。
更改容器的 Visible
属性不会改变其子组件的 Visible
属性值。即使隐藏容器会导致子组件隐藏也是如此。
CurrentAxes
— 当前图窗中的目标坐标区
Axes
对象 | PolarAxes
对象 | 图形对象
当前图窗中的目标坐标区,指定为 Axes
对象、PolarAxes
对象或图形对象,如 HeatmapChart
。
在存在坐标区子级的所有图窗中,始终存在当前坐标区。当前坐标区不必是最顶层的坐标区,并且将坐标区设置为当前坐标区不会将其重新叠放在所有其他坐标区上。如果图窗不包含坐标区,则 get(gcf,'CurrentAxes')
命令返回一个空数组。
查询 CurrentAxes
属性来获取当前坐标区对象,而不强制创建不存在的坐标区。
CurrentObject
— 当前对象
图窗的子对象
当前对象,以图窗的子对象形式返回。MATLAB 将 CurrentObject
属性设置为在图窗中点击的最后一个对象。此对象是视图中位于最前面的对象。
子对象的 HitTest
属性控制该对象是否可以成为 CurrentObject
。
点击其 HandleVisibility
属性为 'off'
的对象会将 CurrentObject
属性设置为空 GraphicsPlaceholder
数组。为避免在用户点击隐藏对象时返回空数组,请将隐藏对象的 HitTest
属性设置为 'off'
。
使用 gco
命令作为获取此属性值的替代方法。
CurrentPoint
— 当前点
二元素向量
当前点,以二元素向量形式返回。该向量包含鼠标指针的 (x, y) 坐标,从图窗左下角开始测量。值采用 Units
属性指定的单位。
执行以下任一操作时坐标都会更新:
在图窗中按下鼠标按键。
在图窗中按下鼠标按键后松开鼠标按键。
在图窗中按下鼠标按键,然后在图窗外松开鼠标按键。
在图窗内转动滚轮。
在
WindowButtonMotionFcn
属性不为空的情况下,在图窗内移动鼠标(不按任何按键)。
如果图窗具有响应鼠标交互的回调,并且您触发该回调的速度比系统执行代码的速度快,则坐标可能不会反映指针的实际位置,而是反映回调开始执行时的位置。
如果您使用 CurrentPoint
属性绘制各点,则坐标值可能包含舍入误差。
CurrentCharacter
— 当前字符
''
(默认) | 字符
当前字符,以按下的最后一个键的字符形式返回。当图窗具有焦点且用户按下某个键时,此属性会更新。
Selected
— 选择状态(不推荐)
'off'
(默认) | on/off 逻辑值
注意
Selected
属性的行为在 R2014b 中已经改变,不推荐使用。它对此类型的对象不会再产生任何影响。在以后的版本中可能会删除该属性。
SelectionHighlight
— 是否显示选择句柄(不推荐)
'on'
(默认) | on/off 逻辑值
注意
不推荐使用 SelectionHighlight
属性。此属性不会对图窗产生任何影响。在以后的版本中可能会删除该属性。
SelectionType
— 鼠标选择类型
'normal'
(默认) | 'extend'
| 'alt'
| 'open'
鼠标选择类型,返回为 'normal'
、'extend'
、'alt'
或 'open'
。此属性提供有关图窗中发生的最后一次按下鼠标按键的信息。
下表列出了可能的 SelectionType
值以及生成这些值的用户操作。
值 | 对应的操作 |
---|---|
| 点击鼠标左键。 |
| 以下任一操作:
|
| 下列任一操作:
|
| 双击任何鼠标按键。 |
ContextMenu
— 上下文菜单
空 GraphicsPlaceholder
数组 (默认) | ContextMenu
对象
上下文菜单,指定为使用 uicontextmenu
函数创建的 ContextMenu
对象。使用此属性可在您右键点击组件时显示上下文菜单。
常见回调
ButtonDownFcn
— 按钮按下回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
按钮按下回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
只要用户点击图窗中的空白区域,就会执行此回调。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
使用 SelectionType
属性确定用户是否按下了修改键。
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
函数获取要删除的组件对象。
键盘回调
KeyPressFcn
— 按键回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
按键回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户按下一个键且图窗或子对象具有焦点时,将执行此回调函数。如果用户在 UIControl
或 Table
组件上按下某个键,回调不会执行,除非 Enable
属性设置为 'off'
或 'inactive'
。
如果用户几乎在同一时间按下多个键,MATLAB 将检测所有键。
KeyPressFcn
回调可以访问有关用户与键盘交互的特定信息。MATLAB 将 KeyData
对象中的此信息作为第二个参数传递给回调函数。下表列出了此对象的属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 作为按下一个或多个键的结果而显示的字符。 按特定键或使用 Ctrl 键修改某些键可能会在此属性中返回无法打印的字符。 单独按特定键(例如 Ctrl、Alt,Shift)不会生成 | 'a' | '=' | '' | 'A' |
Modifier | 包含按下的修改键名称的元胞数组,如 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 按下的键,通过键上的小写字母标签(如 | 'a' | 'equal' | 'shift' | 'a' |
Source | 按下该键时具有焦点的对象。 | Figure 对象 | Figure 对象 | Figure 对象 | Figure 对象 |
EventName | 导致回调函数执行的操作。 | 'KeyPress' | 'KeyPress' | 'KeyPress' | 'KeyPress' |
实时编辑器不支持 KeyPressFcn
回调。
有关指定回调属性值和使用回调参数的详细信息,请参阅Specify a Callback Function。
CurrentCharacter
属性还返回字符信息。
KeyReleaseFcn
— 释放键回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
释放键回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户按下一个键且图窗或子对象具有焦点时,将执行此回调函数。如果用户在 UIControl
或 Table
组件上释放某个键,回调不会执行,除非 Enable
属性设置为 'off'
或 'inactive'
。
KeyReleaseFcn
回调可以访问有关用户与键盘交互的特定信息。MATLAB 将 KeyData
对象中的此信息作为第二个参数传递给回调函数。下表列出了此对象的属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 与释放的一个或多个键对应的字符。 按特定键或使用 Ctrl 键修改某些键可能会在此属性中返回无法打印的字符。 单独按下并释放特定键(例如 Ctrl、Alt、Shift)不会生成 | 'a' | '=' | '' | 'A' |
Modifier | 包含按下的修改键名称的元胞数组,如 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 释放的键,通过键上的小写字母标签(如 | 'a' | 'equal' | 'shift' | 'a' |
Source | 释放键时具有焦点的对象。 | Figure 对象 | Figure 对象 | Figure 对象 | Figure 对象 |
EventName | 导致回调函数执行的操作。 | 'KeyRelease' | 'KeyRelease' | 'KeyRelease' | 'KeyRelease' |
实时编辑器不支持 KeyReleaseFcn
回调。
有关指定回调属性值和使用回调参数的详细信息,请参阅Specify a Callback Function。
窗口回调
CloseRequestFcn
— 关闭请求回调
'closereq'
(默认) | 函数句柄 | 元胞数组 | 字符向量
关闭请求回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
用户试图关闭图窗窗口时会执行该回调。例如,您可以显示一个对话框,询问用户确认或取消关闭操作,或者阻止用户关闭含有 UI 的图窗。
基本机制为:
用户从命令行发出
close
或close all
命令、通过计算机的窗口管理器菜单关闭图窗,或者通过退出 MATLAB 关闭图窗。关闭操作执行图窗的
CloseRequestFcn
属性定义的函数。默认值为'closereq'
。'closereq'
操作会无条件地删除图窗,从而销毁窗口。
除非关闭请求函数调用 delete
或 close
函数,否则 MATLAB 永远不会关闭图窗。(如果您是用非销毁关闭请求函数创建的窗口,则可以从命令行调用 delete(f)
。)
示例:用来显示对话框的代码 CloseRequestFcn
本示例展示如何为关闭请求函数编码以显示要求用户确认关闭操作的问题对话框。将该代码保存到您系统上的可写入文件夹中。
function my_closereq(src,event) % Close request function % to display a question dialog box selection = questdlg('Close This Figure?', ... 'Close Request Function', ... 'Yes','No','Yes'); switch selection case 'Yes' delete(gcf) case 'No' return end end
现在创建一个图窗,为 CloseRequestFcn
指定 my_closereq
。请注意,函数句柄不会显式引用任何输入参数,但函数声明中包含两个输入参数。MATLAB 在回调执行时自动传递这些参数。第一个参数是触发回调的 UI 组件,第二个参数为回调函数提供事件数据。
figure('CloseRequestFcn',@my_closereq)
关闭图窗窗口并显示问题对话框。
SizeChangedFcn
— 大小更改回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
大小更改回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
定义此回调在此容器的大小更改时(例如,当用户调整窗口大小时)自定义 App 布局。
SizeChangedFcn
回调在下列情况下执行:
此容器首次变得可见。
此容器在大小改变时可见。
此容器在大小改变后首次变得可见。如果容器在大小改变时不可见,但后来变得可见,就属于这种情况。
定义 SizeChangedFcn
回调时要考虑的其他重要事项:
考虑将此容器推迟到
SizeChangedFcn
使用的所有变量都定义之后再显示。此做法可避免SizeChangedFcn
回调返回错误。要延迟显示容器,请将其Visible
属性设置为'off'
。然后,在定义您的SizeChangedFcn
回调使用的变量之后将Visible
属性设置为'on'
。如果您的 App 包含嵌套容器,它们从里向外调整大小。
要访问从
SizeChangedFcn
中调整大小的容器,请指向源对象(回调中的第一个输入参数)或使用gcbo
函数。
提示
作为指定 SizeChangedFcn
回调的一种简单替代方法,您可以将置于容器中的所有对象的 Units
属性都设置为 'normalized'
。这样做会使这些组件随容器按比例缩放。
示例:编辑具有固定高度的字段
使用 SizeChangedFcn
回调来约束 UI 组件的大小。例如,以下代码在窗口顶部创建一个 UI,它具有一个编辑字段。当用户调整窗口大小时,sbar
函数将其高度限制为 20 像素。此函数还将编辑字段的宽度设置为等于图窗的宽度。使用圆点表示法来设置和查询属性。
function myui f = figure('Visible','off','SizeChangedFcn',@sbar); u = uicontrol('Style','edit','Tag','StatusBar'); f.Visible = 'on'; function sbar(src,event) old_units = src.Units; src.Units = 'pixels'; sbar_units = u.Units; u.Units = 'pixels'; fpos = src.Position; upos = [1 fpos(4) - 20 fpos(3) 20]; u.Position = upos; u.Units = sbar_units; src.Units = old_units; u.Visible = 'on'; end end
请注意,sbar
的函数句柄不会显式引用任何输入参数,但函数声明中包含两个输入参数。MATLAB 在回调执行时自动传递这些参数。第一个参数是触发回调的 UI 组件,第二个参数为回调函数提供事件数据。
WindowButtonDownFcn
— 窗口内按键按下回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口内按键按下回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户点击图窗中的任何位置或其子对象之一时,将执行此回调。如果用户点击 UIControl
或 Table
组件,回调不会执行,除非 Enable
属性设置为 'off'
或 'inactive'
。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
WindowButtonMotionFcn
— 窗口内按键移动回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口内按键移动回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
通常,用户在图窗内移动指针时会执行此回调函数。但是,如果用户点击并按住鼠标按键并且将指针移到图窗之外,则在指针位于图窗之外时将执行 WindowButtonMotionFcn
回调。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
示例:简单的绘图 App
以下示例说明如何创建一个使用 WindowButtonMotionFcn
回调的绘图 App。将以下代码复制并粘贴到编辑器中并运行它。然后使用鼠标绘制一组连接的线段:
在坐标区内点击并拖动以绘制第一个线段。
再次点击以定义该线段的锚点。
移动鼠标以添加另一个线段。
右键点击可终止绘制模式。
function drawing_app figure('WindowButtonDownFcn',@wbdcb) ah = axes('SortMethod','childorder'); axis ([1 10 1 10]) title('Click and drag') function wbdcb(src,event) seltype = src.SelectionType; if strcmp(seltype,'normal') src.Pointer = 'circle'; cp = ah.CurrentPoint; xinit = cp(1,1); yinit = cp(1,2); hl = line('XData',xinit,'YData',yinit,... 'Marker','p','color','b'); src.WindowButtonMotionFcn = @wbmcb; src.WindowButtonUpFcn = @wbucb; end function wbmcb(src,event) cp = ah.CurrentPoint; xdat = [xinit,cp(1,1)]; ydat = [yinit,cp(1,2)]; hl.XData = xdat; hl.YData = ydat; drawnow end function wbucb(src,event) last_seltype = src.SelectionType; if strcmp(last_seltype,'alt') src.Pointer = 'arrow'; src.WindowButtonMotionFcn = ''; src.WindowButtonUpFcn = ''; else return end end end end
请注意,回调函数句柄不会显式引用任何输入参数,但函数声明包含两个输入参数。MATLAB 在回调执行时自动传递这些参数。第一个参数是触发回调的 UI 组件,第二个参数为回调函数提供事件数据。
WindowButtonUpFcn
— 窗口内按键弹起回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口内按键弹起回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户在图窗中的任何位置或其子对象之一中释放鼠标按键时,将执行此回调。如果用户在 UIControl
或 Table
组件上释放鼠标按键,回调不会执行,除非 Enable
属性设置为 'off'
或 'inactive'
。
按键弹起操作与图窗中的按键按下操作相关联。当按键按下操作发生时,鼠标指针必须位于图窗内部,但在按键弹起操作发生时,它可以在图窗外部。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
WindowKeyPressFcn
— 窗口按键回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口按键回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户按下一个键且图窗或子对象具有焦点时,将执行此回调函数。
此回调函数可以访问有关用户与键盘的交互的特定信息。MATLAB 将 KeyData
对象中的此信息作为第二个参数传递给回调函数。下表列出了此对象的属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 作为按下一个或多个键的结果而显示的字符。 按特定键或使用 Ctrl 键修改某些键可能会在此属性中返回无法打印的字符。 单独按特定键(例如 Ctrl、Alt,Shift)不会生成 | 'a' | '=' | '' | 'A' |
Modifier | 包含按下的修改键名称的元胞数组,如 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 按下的键,通过键上的小写字母标签(如 | 'a' | 'equal' | 'shift' | 'a' |
Source | 按下该键时具有焦点的对象。 | Figure 对象 | Figure 对象 | Figure 对象 | Figure 对象 |
EventName | 导致回调函数执行的操作。 | 'WindowKeyPress' | 'WindowKeyPress' | 'WindowKeyPress' | 'WindowKeyPress' |
实时编辑器不支持 WindowKeyPressFcn
回调。
有关指定回调属性值和使用回调参数的详细信息,请参阅Specify a Callback Function。
WindowKeyReleaseFcn
— 窗口释放键回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口释放键回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户释放键且图窗或子对象具有焦点时,将执行此回调函数。
此回调函数可以访问有关用户与键盘的交互的特定信息。MATLAB 将 KeyData
对象中的此信息作为第二个参数传递给回调函数。下表列出了此对象的属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 与释放的一个或多个键对应的字符。 按特定键或使用 Ctrl 键修改某些键可能会在此属性中返回无法打印的字符。 单独按下并释放特定键(例如 Ctrl、Alt、Shift)不会生成 | 'a' | '=' | '' | 'A' |
Modifier | 包含按下的修改键名称的元胞数组,如 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 释放的键,通过键上的小写字母标签(如 | 'a' | 'equal' | 'shift' | 'a' |
Source | 释放键时具有焦点的对象。 | Figure 对象 | Figure 对象 | Figure 对象 | Figure 对象 |
EventName | 导致回调函数执行的操作。 | 'WindowKeyRelease' | 'WindowKeyRelease' | 'WindowKeyRelease' | 'WindowKeyRelease' |
实时编辑器不支持 WindowKeyReleaseFcn
回调。
有关指定回调属性值和使用回调参数的详细信息,请参阅Specify a Callback Function。
WindowScrollWheelFcn
— 窗口滚轮回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
窗口滚轮回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户转动滚轮且图窗或其任一子组件具有焦点时时,将执行此回调。但是,其他对象可以捕获滚轮移动和干扰此回调的执行。
执行此回调对 CurrentObject
和 SelectionType
属性没有影响。
当用户转动滚轮时,WindowScrollWheelFcn
回调可以访问特定信息。MATLAB 将 ScrollWheelData
对象中的此信息作为第二个参数传递给回调函数。下表列出了 ScrollWheelData
对象的属性。
属性 | 内容 |
---|---|
VerticalScrollCount | 正数或负数,表示滚轮点击的方向和数量。向下滚动返回正值。向上滚动返回负值。 垂直滚动计数是自上次执行回调以来发生的所有滚轮点击的总次数。通常,值为 |
VerticalScrollAmount | 每转动一次滚轮所滚动的行数。通常,值为 |
Source | 执行回调的对象。 |
EventName | 'WindowScrollWheel' |
实时编辑器不支持 WindowScrollWheelFcn
回调。
有关指定回调属性值和使用回调参数的详细信息,请参阅Specify a Callback Function。
示例:用于更改 x 坐标轴范围的 App
以下示例说明如何创建一个用于显示绘图的 App。用户转动鼠标滚轮即可更改 x 轴的范围。将以下代码复制并粘贴到编辑器中并运行它。
function scroll_wheel % Shows how to use WindowScrollWheelFcn property % f = figure('WindowScrollWheelFcn',@figScroll,'Name','Scroll Wheel Demo'); x = [0:.1:40]; y = 4.*cos(x)./(x+2); a = axes; h = plot(x,y); title('Rotate the scroll wheel') function figScroll(src,event) if event.VerticalScrollCount > 0 xd = h.XData; inc = xd(end)/20; x = [0:.1:xd(end)+inc]; re_eval(x) elseif event.VerticalScrollCount < 0 xd = h.XData; inc = xd(end)/20; x = [0:.1:xd(end)-inc+.1]; % Don't let xd = 0; re_eval(x) end end function re_eval(x) y = 4.*cos(x)./(x+2); h.YData = y; h.XData = x; a.XLim = [0 x(end)]; drawnow end end
请注意,figScroll
的函数句柄不会显式引用任何输入参数,但函数声明中包含两个输入参数。MATLAB 在回调执行时自动传递这些参数。第一个参数是触发回调的 UI 组件,第二个参数为回调函数提供事件数据。
ResizeFcn
— 大小调整回调函数(不推荐)
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
大小调整回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
实时编辑器不支持 ResizeFcn
回调。
注意
不推荐使用 ResizeFcn
属性。在以后的版本中可能会删除该属性。请改用 SizeChangedFcn
。
数据类型: function_handle
| cell
| char
回调执行控件
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。
HitTest
— 变为当前对象的能力
'on'
(默认) | on/off 逻辑值
是否能够成为当前对象,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 当用户点击正在运行的 App 中的组件时,将当前对象设置为Figure
。Figure
和gco
函数的CurrentObject
属性都返回Figure
作为当前对象。'off'
- 当用户点击正在运行的 App 中的图窗时,当前对象不会更新。
BeingDeleted
— 删除状态
on/off 逻辑值
此 属性 为只读。
删除状态,以 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值形式返回。
当 DeleteFcn
回调开始执行时,MATLAB 会将 BeingDeleted
属性设置为 'on'
。BeingDeleted
属性将一直保持 'on'
设置状态,直到组件对象不再存在为止。
在查询或修改对象之前,请先检查其 BeingDeleted
属性的值,以确认它不是待删除项。
父级/子级
Parent
— Figure 父级
根对象
Figure 父级,以根对象的形式返回。
Children
— figure 的子级
空 GraphicsPlaceholder
数组 (默认) | 由对象组成的一维数组
Figure
的子级,以空 GraphicsPlaceholder
或一维对象数组的形式返回。
不能使用 Children
属性添加或删除子级。使用该属性查看子级列表或对子级重新排序。子级的顺序反映了组件在屏幕上的前后顺序(堆叠顺序)。MATLAB 可能不允许您更改某些对象的顺序。例如,UIControl
和 Legend
对象始终位于 Axes
对象的前面。
要向该列表中添加子级,请将子组件的 Parent
属性设置为 Figure
对象。
HandleVisibility
属性设置为 'off'
的对象不会列在 Children
属性中。
HandleVisibility
— figure 对象的可见性
'on'
(默认) | 'callback'
| 'off'
figure 对象的可见性,指定为 'on'
、'callback'
或 'off'
。
此属性确定 figure 是否在父级(根)的子级列表中。HandleVisibility
可用于防止命令行用户无意中在仅包含用户界面组件(例如对话框)的图窗中绘图,或者意外删除了该图窗。
如果对象不在其父级的子级列表中,则通过搜索对象层次结构或查询属性来查找对象的函数将不能返回该对象。此类函数包括 get
、findobj
、gca
、gcf
、gco
、newplot
、cla
、clf
和 close
。
使用 'callback'
或 'off'
设置限制 HandleVisibility
属性值时,对象不会显示在其父对象的 Children
属性中,图窗不会显示在根的 CurrentFigure
属性中,对象不会显示在根的 CallbackObject
属性或图窗的 CurrentObject
属性中,而坐标区也不会显示在其父坐标区的 CurrentAxes
属性中。
可以将根的 ShowHiddenHandles
属性设置为 'on'
以使所有对象可见,而不管其 HandleVisibility
设置如何(这不影响 HandleVisibility
属性的值)。
标识符
Name
— 名称
''
(默认) | 字符向量 | 字符串标量
图窗的名称,指定为字符向量或字符串标量。
示例: figure('Name','Results')
将图窗的名称设置为 'Results'
。
默认情况下,名称为 'Figure n'
,其中 n
是整数。如果您指定 Name
属性,图窗的标题将变为 'Figure n: name'
。如果您希望只显示 Name
值,请将 IntegerHandle
或 NumberTitle
设置为 'off'
。
Number
— 数字
整数 | []
此 属性 为只读。
图窗的编号,以整数或空数组形式返回。您可以使用该值表示图窗。例如,figure(2)
使 Number
属性值为 2
的图窗成为当前图窗。
如果 IntegerHandle
属性设置为 'off'
,则 Number
属性为空。
如果 IntegerHandle
为 'on'
,则 Number
属性是整数。删除该图窗时,MATLAB 会对下一个图窗重用该编号。
NumberTitle
— 使用带编号的标题
'on'
(默认) | on/off 逻辑值
带编号的标题,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
将此属性设置为 'on'
时,图窗的标题会包含短语 'Figure n'
,其中 n
是属性 Number
的值。
NumberTitle
和 IntegerHandle
必须都设置为 'on'
才能显示标题中的编号。
IntegerHandle
— 使用整数句柄
'on'
(默认) | on/off 逻辑值
使用整数句柄,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
如果将 IntegerHandle
属性设置为 'on'
,则 MATLAB 会查找现有图窗不使用的最小整数值并将 Number
属性设置为该值。如果删除某图窗,MATLAB 可以将原图窗的编号用于新图窗。
如果将 IntegerHandle
属性设置为 'off'
,则 MATLAB 不会为图窗分配整数值,而是会将 Number
属性设为空数组。
要在标题栏中显示图窗编号,IntegerHandle
和 NumberTitle
必须设置为 'on'
。
FileName
— 文件名
字符向量 | 字符串标量
用于保存图窗的文件名,指定为字符向量或字符串标量。GUIDE 使用该属性存储它保存的 UI 布局文件的名称。
示例: figure('FileName','myfile.fig')
将文件名设置为 myfile.fig
。
Type
— Figure 对象的类型
'figure'
此 属性 为只读。
Figure 对象的类型,以 'figure'
形式返回。使用该属性在绘制层次结构中查找指定类型的所有对象。
Tag
— 对象标识符
''
(默认) | 字符向量 | 字符串标量
对象标识符,指定为字符向量或字符串标量。您可以指定唯一的 Tag
值作为对象的标识符。如果需要访问您代码中其他位置的对象,可以使用 findobj
函数基于 Tag
值搜索对象。
UserData
— 用户数据
[]
(默认) | 数组
用户数据,指定为任何数组。指定 UserData
对在 App 内共享数据很有用。有关详细信息,请参阅在回调之间共享数据。
版本历史记录
在 R2006a 之前推出R2022a: Renderer
和 RendererMode
属性在以后的版本中将不起作用
在以后的版本中,图窗的 Renderer
和 RendererMode
属性将不起作用。禁用这些属性后,将不再需要更改渲染器。
R2020a: 不推荐使用 UIContextMenu
属性
从 R2020a 开始,不推荐使用 UIContextMenu
属性将上下文菜单分配给图形对象或 UI 组件。请改用 ContextMenu
属性。属性值是相同的。
目前没有停止支持 UIContextMenu
属性的计划。但是,UIContextMenu
属性将不再出现在对图形对象或 UI 组件调用 get
函数时所返回的列表中。
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)