在 App 中使用树显示数据
此示例中的 App 从电子表格中导入患者数据,并将其显示在树中。该树以层次结构显示医院和患者。选择树中的患者节点可显示该患者的信息。当 App 用户编辑患者数据时,App 会与用户确认更改,然后更新存储的数据。
此示例演示以下 App 构建任务:
加载和存储数据。
使用树来组织数据。
创建确认对话框。
加载和存储数据
要在树中显示数据,首先创建一个私有属性 Data
来存储患者数据。在 startupFcn
回调中,将数据从电子表格加载到一个表中。然后将患者数据存储在 Data
属性中,以便您可以在 App 代码的不同部分访问它。
t = readtable("patients.xls");
app.Data = t;
使用树组织和显示数据
创建一个具有节点的树来显示存储的数据。本节描述两种向树组件添加节点的方法,具体取决于节点是手动创建的还是从存储的数据动态创建的:
在设计视图中以交互方式创建节点。
在回调函数中以编程方式创建节点。
在设计视图中,将一个树组件拖到 App 画布上。要向树中添加更多节点,请选择其中一个节点,然后按树左侧的加号按钮。使用此方法创建三个医院节点。
对于依赖用户交互或存储的数据的节点,您也可以在运行时向 startupFcn
代码中动态添加树节点。例如,在运行时,此 App 根据存储的患者数据在每个医院节点下动态添加子节点。查询同一医院的所有患者,在对应的父节点下创建一个患者节点。例如,在 CountyGeneralHospital 树节点下,添加此医院的患者的所有子节点。
uitreenode(app.CountyGeneralHospitalNode,"Text",lastname);
用对话框确认用户编辑
为了确认用户对表数据的编辑,请使用 uiconfirm
创建一个确认对话框。例如,在 AgeEditFieldValueChanged
回调函数中确认数据更改,如果更改已确认,则更新存储的数据。
confirm = uiconfirm(app.PatientsMedicalSurveyUIFigure,"Change Patient Age?","Confirm Change");
patientName = app.Tree.SelectedNodes.Text; if strcmp(confirm,'OK') app.Data.Age(patientName) = app.AgeEditField.Value; % Otherwise, revert change else app.AgeEditField.Value = app.Data.Age(patientName); end
如果您尝试更改 Age 编辑字段,将会出现确认对话框。
另请参阅
函数
uitree
|uitreenode
|uiconfirm
|readtable