学习自官方示例:
《App That Displays Data in a Hierarchy Using Tree - 使用树以层次结构显示数据的App》
https://ww2.mathworks.cn/help/matlab/creating_guis/display-items-in-a-tree-app-or-gui.html
一、用途
Tree主要用来有层次的显示数据,就像一层一层的文件夹
其效果也像sql数据库中表的显示
二、与UITable的结合
官方示例中是每一个节点(Node)对应一个病人的信息,但他信息的展示是通过多个可编辑字段实现的。而我做的App需要点击每个节点时,在UITable中显示对应的数据
1、回调函数的添加
需要选中整个Tree的框,右键添加回调函数。如图所示有多种类型的回调函数,目前我所用到的为SelectionChangedFcn回调。另外三种回调暂时没用到也不了解,等用到再作记录。
2、回调函数的编写
等添加了SelectionChangedFcn回调,会自动生成一条代码。此时的selecteNodes变量,即将用户所选择的节点的名称,保存在Text属性中
selectedNodes = app.Tree.SelectedNodes;
(1)仅有一个节点时
当用户所选择的节点下,再无子节点时,即显示对应的数据。
if isempty(selectedNode.Children) % 如果选中的节点无子节点
app.UITable.Data = app.Data; %此处的Data为之前导入的,希望显示在UITable中的数据
end
(2)当有多个节点
可以用switch语句,对不同的节点显示不同的数据。
selectedNode = app.Tree_quota.SelectedNodes;
if isempty(selectedNode.Children) % 如果选中的节点无子节点
switch selectedNode.Text
case '节点1'
app.UITable_Quota.Data = app.Data1;
case '节点2'
app.UITable_Quota.Data = app.Data2;
case '节点3'
app.UITable_Quota.Data = app.Data3;
end
end
三、实现效果
四、扩展应用
可以通过添加“Add”和"Delete"按钮,对UITable中选中的数据进行增删