Bootstrap

Matlab appdesigner树控件

在appdesigner中拖动树控件到窗口,则会自动生成下面的代码

% Create Tree
 app.Tree = uitree(app.UIFigure);
 app.Tree.SelectionChangedFcn = createCallbackFcn(app, @TreeSelectionChanged, true);
 app.Tree.Position = [131 128 150 300];

uitree( Figure )表示在窗口Figure中生成一棵树,并返回树这个对象。树本身可以看成是根节点,但是这个根结点不会在窗口中显示出来。用uitreenode函数可以生成子结点。格式为

child = uitreenode(parent)

表示创建1个parent的子结点,并返回这个子结点对象。这种结点具有属性Text, NodeData, Icon,分别表示在窗口中显示的文字、含在子结点中的数据(不会在窗口显示出来)、显示出来的图标。

示例如下

 % Callbacks that handle component events
 methods (Access = private)

     % Button pushed function: Button
     function ButtonPushed(app, event)
         ChinaNode = uitreenode(app.Tree, 'Text', 'China', 'NodeData', [1]);
         GuangdongNode = uitreenode( ChinaNode, 'Text', 'Guangdong', 'NodeData', [1,2] );
         AmericaNode = uitreenode(app.Tree, 'Text', 'America', 'NodeData', [2]);
     end

    % Selection changed function: Tree
     function TreeSelectionChanged(app, event)
        selectedNodes = app.Tree.SelectedNodes;
        app.TextArea.Value = num2str( selectedNodes.NodeData );
     end
end

函数ButtonPushed()表示按下按键就生成结点,TreeSelectionChanged()表示鼠标选择树结点时应该执行的内容。这里我把结点的数据输出出来。效果如下

 

删除结点使用成员delete即可。如下使用

node.delete;

或者整个数组中的结点删除,如下:

app.Tree.Children.delete;

其中app.Tree.Children获取子结点数组。

;