You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Matlab UI TreeNode的展开状态?

Matlab新UI树形组件获取节点展开状态的方法

在Matlab的新UI框架下,uitreenode对象内置了isExpanded方法,可直接获取节点的展开/折叠状态,配合expand和collapse方法就能实现状态的保存与恢复。

基础用法示例

% 创建树形界面结构
fig = uifigure();
gridLayout = uigridlayout(fig, [1 1]);
tree = uitree(gridLayout);
parentNode = uitreenode(tree, 'Text', 'Parent');
uitreenode(parentNode, 'Text', 'Child');

% 获取父节点的展开状态
currentState = parentNode.isExpanded();
% 输出状态:1代表展开,0代表折叠
disp(['父节点当前状态:', num2str(currentState)]);

保存与恢复状态的完整示例

如果需要实现状态的持久化保存和后续恢复,可以按以下方式操作:

% 初始化树形结构
fig = uifigure();
gridLayout = uigridlayout(fig, [1 1]);
tree = uitree(gridLayout);
parentNode = uitreenode(tree, 'Text', 'Parent');
childNode = uitreenode(parentNode, 'Text', 'Child');

% 模拟用户操作:展开父节点
parentNode.expand();
% 保存当前展开状态
savedExpandedState = parentNode.isExpanded();

% 模拟折叠节点
parentNode.collapse();
disp(['折叠后父节点状态:', num2str(parentNode.isExpanded())]);

% 恢复之前保存的状态
if savedExpandedState
    parentNode.expand();
else
    parentNode.collapse();
end
disp(['恢复后父节点状态:', num2str(parentNode.isExpanded())]);

说明

  • isExpanded()方法返回逻辑值:true(或数值1)表示节点展开,false(或数值0)表示节点折叠。
  • 若要处理多节点的状态保存,可遍历树形结构的所有节点(通过tree.Children递归遍历),记录每个节点的唯一标识(如Text属性)和对应的展开状态,恢复时根据标识匹配节点并设置状态。

内容的提问来源于stack exchange,提问作者walderich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:06:00