Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

uitreenode

创建树节点组件

说明

node = uitreenode 在新图窗窗口中的树内创建 UI 组件节点,并返回 TreeNode 对象。MATLAB® 调用 uifigure 函数来创建该图窗。

node = uitreenode(parent) 在指定的父容器中创建树节点。父容器可以是 TreeTreeNode 对象。

node = uitreenode(parent,sibling) 在指定的父容器中,在指定的同级节点后面创建一个树节点。

node = uitreenode(parent,sibling,location) 创建一个树节点,并将其放在同级节点的后面或前面。将 location 指定为 'after''before'

示例

node = uitreenode(___,Name,Value) 使用一个或多个 Name,Value 对组参数指定 TreeNode 属性值。使用上述任何语法时,可以指定 Name,Value 作为最后一组参数。

示例

全部折叠

创建包含一个节点的树,该节点名为 “Sample Data”。

t = uitree('Position',[20 20 150 150]);
node = uitreenode(t,'Text','Sample Data');

创建一个名为 mytreeapp.m 的程序文件,并在其中包含下列代码,以创建树、一组嵌套的树节点和一个回调函数。SelectionChangedFcn 属性指定当用户点击树中的节点时要执行的函数。

function mytreeapp
    fig = uifigure;
    t = uitree(fig,'Position',[20 20 150 150]);

    % Assign Tree callback in response to node selection
    t.SelectionChangedFcn = @nodechange;

    % First level nodes
    category1 = uitreenode(t,'Text','Runners','NodeData',[]);
    category2 = uitreenode(t,'Text','Cyclists','NodeData',[]);

    % Second level nodes.
    % Node data is age (y), height (m), weight (kg)
    p1 = uitreenode(category1,'Text','Joe','NodeData',[40 1.67 58] );
    p2 = uitreenode(category1,'Text','Linda','NodeData',[49 1.83 90]);
    p3 = uitreenode(category2,'Text','Rajeev','NodeData',[25 1.47 53]);
    p4 = uitreenode(category2,'Text','Anne','NodeData',[88 1.92 100]);

    % Expand the tree
    expand(t);
    
    function nodechange(src,event)
        node = event.SelectedNodes;
        display(node.NodeData);
    end
end

当用户运行 mytreeapp 并点击树中的节点时,MATLAB 将显示该节点的 NodeData

创建一个上下文菜单,其中包含适合树组件的动作。将该上下文菜单分配给树中的顶层树节点。

在 UI 图窗中,创建一个树,其中包含四个顶层节点和一组嵌套节点。

fig = uifigure;

tree = uitree(fig,'Position',[20 200 175 100]);

category1 = uitreenode(tree,'Text','Runners');
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');

category2 = uitreenode(tree,'Text','Cyclists');
c1 = uitreenode(category2,'Text','Rajeev');

category3 = uitreenode(tree,'Text','Hikers');
h1 = uitreenode(category3,'Text','Jack');

category4 = uitreenode(tree,'Text','Swimmers');
s1 = uitreenode(category4,'Text','Logan');

创建一个包含三个菜单项的上下文菜单。对于最后一个菜单项,创建四个子菜单。

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Expand All');
m2 = uimenu(cm,'Text','Collapse All');
m3 = uimenu(cm,'Text','Scroll To...');

sbm1 = uimenu(m3,'Text','Runners');
sbm2 = uimenu(m3,'Text','Cyclists');
sbm3 = uimenu(m3,'Text','Hikers');
sbm4 = uimenu(m3,'Text','Swimmers');

然后,通过将每个节点的 ContextMenu 属性设置为 ContextMenu 对象,将上下文菜单分配给顶层树节点。

category1.ContextMenu = cm;
category2.ContextMenu = cm;
category3.ContextMenu = cm;
category4.ContextMenu = cm;

右键点击任一顶层树节点可查看上下文菜单。

此时,代码仍未完成。右键点击时会出现上下文菜单,但选择菜单项没有任何效果。要完成菜单项行为的实现,请创建 MenuSelectedFcn 回调函数。

输入参数

全部折叠

父对象,指定为 TreeTreeNode 对象。

同级节点,指定为 TreeNode 对象。

相对于同级节点的位置,指定为 'after''before'

名称-值对组参数

示例: node = uitreenode(t,'Text','Measurements') 创建带有标签 'Measurements' 的树节点。

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在单引号 (' ') 中。您可以指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

此处列出的属性只是其中一部分。有关完整列表,请参阅 TreeNode 属性

节点文本,指定为字符向量或字符串标量。

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

支持的图像格式包括 JPEG、PNG、GIF、SVG 或 m×n×3 真彩色图像数组。有关真彩色图像数组的详细信息,请参阅图像类型

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

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

节点数据,指定为任何类型的数组。指定 NodeData,以便在 App 代码中共享与节点相关的数据。

在 R2017b 中推出