主要内容

树的属性

控制树的外观和行为

树是UI组件,用于在应用程序的层次结构中呈现项目列表。属性控制树的外观和行为。使用点符号来引用特定的对象和属性。

例如,这段代码创建了一个带有两个嵌套节点的基本树,存储对象t,然后设置FontColor属性使用点符号。

无花果= uifigure;t = uitree(图);N1 = uitreenode(T);n1.Text = '节点1';N2 = uitreenode(N1);n2.Text = '节点2';t.FontColor = '蓝色';

有关如何创建和配置树的更多示例,请参见uitree

节点

全部展开

选中的节点,指定为TreeNode对象或数组TreeNode对象。使用此属性可获取或设置树中选定的节点。

若要允许用户选择多个节点,请设置多选财产“上”.MATLAB®总是返回SelectedNodes作为列向量,当树有多个选定节点时。

字体和颜色

全部展开

字体名称,指定为系统支持的字体名称。万博1manbetx默认字体取决于特定的操作系统和地区。

如果指定的字体不可用,那么使用MATLAB在应用程序正在运行的系统上可用的字体之间的最佳匹配。

例子:“宋体”

字体大小,指定为正数。度量单位是像素。默认字体大小取决于特定的操作系统和地区。

例子:14

字体大小,指定为以下值之一:

  • “正常”-由特定字体定义的默认权重

  • “大胆”- 厚性格轮廓比“正常”

并不是所有的字体都有粗体字体。对于没有指定的字体,请指定“大胆”结果显示正常的字体粗细。

字体角度,指定为“正常”“斜体”.不是所有字体都有斜体字体角度。对于没有指定的字体,请指定“斜体”结果显示正常的字体角度。

字体颜色,指定为RGB三元组、十六进制颜色代码或表中列出的选项之一。

RGB三联体和十六进制颜色代码在指定自定义颜色时很有用。

  • RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在这个范围内[0, 1];例如,(0.4 0.6 0.7)

  • 十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(),接着的三个或六个十六进制数字,它的范围可以从0F.这些值不区分大小写。因此,颜色是代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。

颜色名称 简称 RGB值 十六进制颜色代码 外观
“红色” “r” (1 0 0) “# FF0000”

颜色的样本

“绿色” ‘g’ (0 1 0) “# 00 ff00”

绿颜色的样品

'蓝色' “b” [0 0 1] “# 0000 ff”

样品的颜色是蓝色的

“青色” “c” [0 1 1] “# 00飞行符”

样品的颜色为青色

'品红' 'M' (1 0 1) “#就”

样品的颜色为洋红色

“黄色” “y” (1 1 0) “# FFFF00”

样品的颜色为黄色

“黑” 数k [0 0 0] '#000000'

样品的颜色为黑色

“白色” ' w ' (1 1 1) “# FFFFFF”

样品的颜色为白色

以下是MATLAB在许多类型的绘图中使用的默认颜色的RGB三联体和十六进制颜色代码。

RGB值 十六进制颜色代码 外观
[0 0.4470 - 0.7410) '#0072BD'

RGB三元组样本[0 0.4470 0.7410],呈现深蓝色

(0.8500 0.3250 0.0980) “# D95319”

RGB三元组样本[0.8500 0.3250 0.0980],呈暗橙色

(0.9290 0.6940 0.1250) “# EDB120”

RGB三元组样本[0.9290 0.6940 0.1250],呈暗黄色

[0.4940 0.1840 0.5560] “# 7 e2f8e”

样品RGB三片[0.4940 0.1840 0.5560],呈深紫色

(0.4660 0.6740 0.1880) '#77ac30'

样品RGB三联体[0.4660 0.6740 0.1880],呈中绿色

[0.3010 0.7450 0.9330] '#4DBEEE'

RGB三元[0.3010 0.7450 0.9330],其表现为淡蓝色的样品

(0.6350 0.0780 0.1840) “# A2142F”

RGB三元[0.6350 0.0780 0.1840],其表现为暗红色的样品

背景颜色,指定为RGB三元组、十六进制颜色代码或表中列出的颜色选项之一。

RGB三联体和十六进制颜色代码在指定自定义颜色时很有用。

  • RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在这个范围内[0, 1];例如,(0.4 0.6 0.7)

  • 十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(),接着的三个或六个十六进制数字,它的范围可以从0F.这些值不区分大小写。因此,颜色是代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。

颜色名称 简称 RGB值 十六进制颜色代码 外观
“红色” “r” (1 0 0) “# FF0000”

颜色的样本

“绿色” ‘g’ (0 1 0) “# 00 ff00”

绿颜色的样品

'蓝色' “b” [0 0 1] “# 0000 ff”

样品的颜色是蓝色的

“青色” “c” [0 1 1] “# 00飞行符”

样品的颜色为青色

'品红' 'M' (1 0 1) “#就”

样品的颜色为洋红色

“黄色” “y” (1 1 0) “# FFFF00”

样品的颜色为黄色

“黑” 数k [0 0 0] '#000000'

样品的颜色为黑色

“白色” ' w ' (1 1 1) “# FFFFFF”

样品的颜色为白色

以下是MATLAB在许多类型的绘图中使用的默认颜色的RGB三联体和十六进制颜色代码。

RGB值 十六进制颜色代码 外观
[0 0.4470 - 0.7410) '#0072BD'

RGB三元组样本[0 0.4470 0.7410],呈现深蓝色

(0.8500 0.3250 0.0980) “# D95319”

RGB三元组样本[0.8500 0.3250 0.0980],呈暗橙色

(0.9290 0.6940 0.1250) “# EDB120”

RGB三元组样本[0.9290 0.6940 0.1250],呈暗黄色

[0.4940 0.1840 0.5560] “# 7 e2f8e”

样品RGB三片[0.4940 0.1840 0.5560],呈深紫色

(0.4660 0.6740 0.1880) '#77ac30'

样品RGB三联体[0.4660 0.6740 0.1880],呈中绿色

[0.3010 0.7450 0.9330] '#4DBEEE'

RGB三元[0.3010 0.7450 0.9330],其表现为淡蓝色的样品

(0.6350 0.0780 0.1840) “# A2142F”

RGB三元[0.6350 0.0780 0.1840],其表现为暗红色的样品

此属性是只读的。

属性创建的添加样式的配置uistyle函数,作为n3表数组。表数组的每一行都对应于当前应用于树的样式。连续添加的样式有样式订单号n + 1.的目标TargetIndex列指定样式被添加到树的那一部分。的风格列指定样式类名。

属性从树中删除样式时,请使用此属性removeStyle函数。

例如:删除一个样式

首先,向树中添加两种样式。

无花果= uifigure;fig.Position = [100 100 250 350];t = uitree(图);n1 = uitreenode (t)'文本'“水果”);n11 = uitreenode (n1,'文本'“香蕉”);n12 = uitreenode (n1,'文本'“樱桃”);n2 = uitreenode (t)'文本''蔬菜');n21 = uitreenode (n2,'文本''西兰花');n22 = uitreenode (n2,'文本'“莴苣”);扩展(t) s1 = uistyle(“FontColor”0.4 - 0.7 [0]);%绿色s2 = uistyle (“FontColor”[0.1 0.5 0.1]);%的蓝色addStyle (t, s1,“水平”2);addStyle (t, s2,“节点”, (n2 n21 n22]);

有列出水果和蔬菜的节点的树。香蕉和樱桃节点是蓝色的,蔬菜、西兰花和生菜节点是绿色的。

当你查询t.StyleConfigurations, MATLAB返回一个2 × 3的表数组。级别样式是首先添加到表UI组件的,所以它是样式序号1.的TargetIndex关卡风格的价值,{[2]}表明所述样式施加到节点的第二电平。同样,第二风格加入到树中的三个节点。

t.StyleConfigurations
ans = 2×3表目标TargetIndex风格  ______ ______________ _________________________ 1级{[2]}1×1 matlab.ui.style.Style 2节点{1×3 TreeNode} 1×1 matlab.ui.style.Style

通过指定样式订单号来删除添加到树中的第二个样式2.树组件的外观更新为只使用第一种样式。

removeStyle (t, 2)

有列出水果和蔬菜的节点的树。香蕉,樱桃,西兰花,生菜节点是蓝色的。

交互性

全部展开

可见性状态,指定为“上”'离开',或数字或逻辑1真正的)或0).的值“上”相当于真正的,'离开'相当于.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState

  • “上”—显示对象。

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

要使你的应用程序启动得更快,请设置可见的财产'离开'对于所有不需要在启动时出现的UI组件。

多节点选择,指定为'离开'“上”,或数字或逻辑1真正的)或0).的值“上”相当于真正的,'离开'相当于.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState

将此属性设置为“上”允许用户同时选择多个节点。

节点文本可编辑性,指定为'离开'“上”,或数字或逻辑1真正的)或0).的值“上”相当于真正的,'离开'相当于.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState

将此属性设置为“上”允许用户在运行时编辑节点文本。的启用属性也必须设置为“上”使文本可编辑。

树的操作状态,指定为“上”'离开',或数字或逻辑1真正的)或0).的值“上”相当于真正的,'离开'相当于.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState

  • 如果将此属性设置为“上”,应用程序用户可以与树及其节点进行交互。

  • 如果将此属性设置为'离开'中,组件变灰,这表明应用用户不能与它或它的节点,相互作用,并且它不会触发一个回调。

将此属性设置为'离开'使树及其节点显得暗淡,表示用户不能与树或其节点进行交互。

工具提示,指定为字符向量、字符向量的单元格数组、字符串数组或1-D分类数组。当用户在运行时将指针悬停在组件上时,使用此属性显示消息。即使组件被禁用,工具提示也会显示出来。若要显示多行文本,请指定字符向量单元格数组或字符串数组。数组中的每个元素变成一行单独的文本。如果将此属性指定为类别数组,MATLAB将使用数组中的值,而不是全部类别集合。

上下文菜单,指定为快捷菜单使用UIContextMenu.函数。在组件上单击右键时,使用此属性显示上下文菜单。

位置

全部展开

位置和大小,指定为窗体的四个元素向量[左下角宽度高度].该表描述了向量中的每个元素。所有的测量都以像素为单位。

元素 描述
父容器的左内边缘到包围树的边界框的左边缘的距离
底部 从父容器的内底边到包围树的边界框的底边的距离
宽度 边界框左右边缘之间的距离
高度 边界框的上边缘和下边缘之间的距离

位置和大小,指定为以下形式的四元素矢量,[左下角宽度高度].vector中的值是相对于父容器的。所有的测量都以像素为单位。该属性值与位置财产。

此属性是只读的。

Location和size作为表单的四个元素向量返回,[左下角宽度高度].vector中的值是相对于父容器的。所有的测量都以像素为单位。该属性值与位置财产。

布局选项,指定为GridLayoutOptions对象。此属性为网格布局容器的子组件指定选项。如果组件不是网格布局容器的子组件(例如,它是图形或面板的子组件),则此属性为空,不起作用。但是,如果组件是网格布局容器的子组件,则可以通过设置柱子属性GridLayoutOptions对象。

例如,这段代码将树放置在其父网格的第三行和第二列。

G = uigridlayout([4 3]);T = uitree(克);t.Layout.Row = 3;t.Layout.Column = 2;

要使树跨多行或多列,请指定柱子属性为二元素向量。例如,这个树跨列2通过3.

t.Layout.Column = [2 3];

回调

全部展开

选择改变回调,指定为以下值之一:

  • 一个处理函数。

  • 单元格数组,其中第一个元素是函数句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

当用户在树中选择不同的节点时,使用此回调函数执行命令。

这个回调函数可以访问关于用户与树交互的特定信息,例如所选节点。MATLAB将这个信息传递到SelectedNodesChangedData对象作为回调函数的第二个参数。在App Designer中,参数被调用事件.可以使用点表示法查询对象属性。例如,事件。选择edNodes返回所选TreeNode对象或对象。的SelectedNodesChangedData对象不可用于指定为字符向量的回调函数。

的属性说明如下表所示SelectedNodesChangedData对象。

财产

描述

SelectedNodes

最近的选择TreeNode对象或对象

PreviousSelectedNodes

之前的选择TreeNode对象或对象

来源

执行回调的组件

EventName

“SelectionChanged”

有关编写回调的更多信息,请参见在应用程序设计器中编写回调

节点扩展回调,指定为以下值之一:

  • 一个处理函数。

  • 单元格数组,其中第一个元素是函数句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

当用户展开树中的节点时,使用此回调函数执行命令。

这个回调函数可以访问关于用户与节点交互的特定信息。MATLAB将这个信息传递到NodeExpandedData对象作为回调函数的第二个参数。在App Designer中,参数被调用事件.可以使用点表示法查询对象属性。例如,事件。节点返回TreeNode对象用户折叠。的NodeExpandedData对象不可用于指定为字符向量的回调函数。

的属性说明如下表所示NodeExpandedData对象。

财产

描述

节点

TreeNode用户展开的对象

来源

执行回调的组件

EventName

“NodeExpanded”

有关编写回调的更多信息,请参见在应用程序设计器中编写回调

节点收缩回调,指定为以下值之一:

  • 一个处理函数。

  • 单元格数组,其中第一个元素是函数句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

当用户折叠树中的节点时,使用此回调函数执行命令。

这个回调函数可以访问关于用户与节点交互的特定信息。MATLAB将这个信息传递到NodeCollapsedData对象作为回调函数的第二个参数。在App Designer中,参数被调用事件.可以使用点表示法查询对象属性。例如,事件。节点返回TreeNode对象用户折叠。的NodeCollapsedData对象不可用于指定为字符向量的回调函数。

的属性说明如下表所示NodeCollapsedData对象。

财产

描述

节点

TreeNode用户折叠的对象

来源

执行回调的组件

EventName

“NodeCollapsed”

有关编写回调的更多信息,请参见在应用程序设计器中编写回调

Node text changed callback,指定为以下值之一:

  • 一个处理函数。

  • 单元格数组,其中第一个元素是函数句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

当用户更改树中某个节点的文本时,使用此回调函数执行命令。

这个回调函数可以访问关于用户与树节点交互的特定信息。MATLAB将这个信息传递到NodeTextChangedData对象作为回调函数的第二个参数。在App Designer中,参数被调用事件.可以使用点表示法查询对象属性。例如,事件。PreviousText返回上一个节点文本。的NodeTextChangedData对象不可用于指定为字符向量的回调函数。

下表描述的特性NodeTextChangedData对象。

财产

描述

节点

TreeNode已更改文本的对象

文本

新节点的文本

PreviousText

前节点的文本

来源

执行回调的组件

EventName

“NodeTextChanged”

有关编写回调的更多信息,请参见在应用程序设计器中编写回调

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

  • 函数处理。

  • 单元阵列,其中所述第一元件是一个功能句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 字符向量包含有效的MATLAB表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。

有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见在应用程序设计器中编写回调

此属性指定MATLAB创建对象时执行的回调函数。方法之前,MATLAB初始化所有属性值CreateFcn打回来。如果不指定CreateFcn属性,那么MATLAB执行默认创建功能。

设置CreateFcn属性对现有组件没有影响。

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

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

  • 函数处理。

  • 单元阵列,其中所述第一元件是一个功能句柄。cell数组中的后续元素是要传递给回调函数的参数。

  • 字符向量包含有效的MATLAB表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。

有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见在应用程序设计器中编写回调

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

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

回调执行控制

全部展开

回调中断,指定为“上”'离开',或数字或逻辑1真正的)或0).的值“上”相当于真正的,'离开'相当于.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState

此属性确定是否可以中断正在运行的回调。有两种回调状态需要考虑:

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

  • 中断回调是一个回调,试图中断正在运行的回调。

MATLAB在执行处理回调队列的命令时确定回调中断行为。这些命令包括drawnow数字uifiguregetframe等待,暂停

如果运行的回调不包含这些命令之一,则不会发生中断。MATLAB第一完成执行运行回调,后来执行中断回调。

如果正在运行的回调函数确实包含这些命令之一,则可中断拥有正在运行的回调的对象的属性决定中断是否发生:

  • 如果可中断'离开',则不发生中断。相反,BusyAction属性决定中断回调是否被丢弃或添加到回调队列中。

  • 如果可中断“上”,则中断发生。下一次MATLAB处理回调队列时,它将停止正在运行的回调的执行,并执行中断的回调。中断回调完成后,MATLAB将继续执行正在运行的回调。

请注意

在这些情况下,回调中断和执行的行为是不同的:

  • 如果中断回调为DeleteFcnCloseRequestFcn,或SizeChangedFcn回调,则中断发生不管可中断属性值。

  • 如果正在运行的回调函数正在执行等待函数,则不管可中断属性值。

  • 如果中断回调属于计时器对象,则回调将根据调度执行,而不管可中断属性值。

请注意

当中断发生时,MATLAB不保存属性或显示的状态。方法返回的对象gcagcf命令可能在执行另一个回调时更改。

回调排队,指定为“队列”“取消”.的BusyAction属性决定了MATLAB如何处理中断回调的执行。有两种回调状态需要考虑:

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

  • 中断回调是一个回调,试图中断正在运行的回调。

BusyAction属性仅在满足这两个条件时确定回调排队行为:

在这些条件下BusyAction属性决定了MATLAB如何处理中断回调。这些是可能的值BusyAction属性:

  • “队列”—将中断回调放入正在运行的回调执行完成后待处理的队列中。

  • “取消”—不执行中断回呼。

此属性是只读的。

删除状态,返回类型为开/关逻辑值matlab.lang.OnOffSwitchState

MATLAB设置BeingDeleted财产“上”DeleteFcn回调函数开始执行。的BeingDeleted属性仍然设置为“上”直到组件对象不再存在。

检查该值BeingDeleted属性来验证对象在查询或修改之前不会被删除。

父/子

全部展开

父容器,指定为数字使用uifigure功能,或在其子容器之一:标签面板ButtonGroup中,或GridLayout.如果没有指定容器,则MATLAB调用uifigure函数创建一个新的数字作为父容器的对象。

的数组返回TreeNode对象。

属性添加或删除子节点孩子们属性,但可以使用该属性查看子列表。子节点的顺序反映了子节点在屏幕上显示的顺序。要将子列表添加到此列表,请设置属性的子组件对象。

要重新排列子结点,请使用移动函数。

与对象HandleVisibility属性设置为'离开'没有列在孩子们财产。

对象句柄的可见性,指定为“上”“回调”,或'离开'

此属性控制对象在其父的子列表中的可见性。当一个对象在其父的子列表中不可见时,通过搜索对象层次结构或查询属性获取对象的函数不会返回该对象。这些功能包括得到findobjclf,关闭.对象即使不可见也是有效的。如果你可以访问一个对象,你可以设置和获取它的属性,并将它传递给任何操作对象的函数。

HandleVisibility价值 描述
“上” 物体总是可见的。
“回调” 对象在回调或由回调调用的函数中可见,但在从命令行调用的函数中不可见。这个选项阻止在命令行中访问对象,但允许回调函数访问它。
'离开' 物体在任何时候都是看不见的。这个选项对于防止其他函数对UI的意外更改非常有用。设置HandleVisibility'离开'在函数执行期间暂时隐藏对象。

标识符

全部展开

此属性是只读的。

图形对象的类型,返回为“uitree”

对象标识符,指定为字符向量或标量的字符串。您可以指定一个唯一的标签值作为对象的标识符。当您需要访问代码中的其他地方的对象时,可以使用findobj函数搜索对象标签价值。

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

如果你在应用程序设计器中工作,在应用程序中创建公共或私有属性来共享数据,而不是使用用户数据财产。有关更多信息,请参见共享数据在应用程序设计应用

另请参阅

功能

介绍了R2017b