主要内容

显示表的程序应用程序

控件在应用程序中显示表格场上函数。它还展示了如何修改表的外观,以及如何在运行的应用程序中限制对表的编辑。

在图中创建一个表UI组件

场上函数在图中创建一个空的UI表。

无花果= uifigure (“位置”,[100 100 752 250]);外的=场上(“父”无花果,“位置”,[25 50 700 200]);

创建包含混合数据类型的表

加载包含混合数据类型的示例患者数据,并将其存储在一个表数组中。要使数据以下拉列表的形式显示在表格组件的单元格中,请将单元格数组变量转换为类别数组。要在表UI组件中显示数据,请将表数组指定为数据财产。

负载病人t =表(LastName、年龄、体重、身高、抽烟,...SelfAssessedHealthStatus);t.SelfAssessedHealthStatus =分类(t。SelfAssessedHealthStatus,...“可怜的”“公平”‘好’“优秀”},“顺序”,真正的);外的。数据= t;

患者数据表,列有“姓氏”、“年龄”、“体重”、“身高”、“吸烟者”和“自我评估健康状态”。selfassesedhealthstatus列显示每个患者的状态为“较差”、“正常”、“良好”或“优秀”。

自定义显示

您可以用几种方法定制UI表的显示。使用ColumnName属性添加列标题。

外的。ColumnName = {“姓”“年龄”“重量”...“高度”“抽烟”“健康状况”};

患者数据表,列有“姓氏”、“年龄”、“体重”、“身高”、“吸烟者”和“健康状况”。表中的数据与上表等价。

若要调整列的宽度,请指定ColumnWidth财产。的ColumnWidth属性是一个1 × N的单元格数组,其中N是表中的列数。设置特定的列宽,或使用“汽车”让MATLAB®根据内容设置宽度。

外的。ColumnWidth = {“汽车”, 75,“汽车”“汽车”“汽车”100};

有不同大小列的患者数据表。Last Name、Weight、Height和烟民列的宽度相同,基于列的内容设置。年龄列是75像素宽,健康状态列是100像素宽。

属性添加编号的行标题RowName财产“编号”

外的。RowName =“编号”

患者资料表。表的第一列没有标题,只提供行号。

控件重新定位和调整表的大小位置财产。

外的。位置= [15 25 565 200];

患者数据表,在图形窗口中向下移动,与前一个表相比宽度减小。年龄和健康状态列仍然分别为75和100像素宽。“Last Name”、“Weight”、“Height”和“烟民”列宽度将自动调整大小以适应新表的大小。

默认情况下,表UI组件使用行条带化,并循环使用指定的背景颜色,直到到达表的末尾。如果你设置RowStriping财产“关闭”控件中指定的第一个颜色写成BackgroundColor属性。在这里,留下一行条纹“上”设置三种不同的颜色写成BackgroundColor财产。

外的。background - color = [1 1 .9;1 . 1 .95];

患者资料表。第一行、第四行和第七行用黄色表示,第二行、第五行和八行用蓝色表示,第三行和第六行用红色表示。

启用列排序和限制编辑单元格值

属性使所有列可排序ColumnSortable财产真正的.如果一个列是可排序的,当您将鼠标悬停在它上面时,箭头将出现在标题中。

外的。ColumnSortable = true;

患者资料表。“姓氏”列在列标题旁边有向上和向下的箭头,表示该列是可排序的。

若要限制用户编辑表中数据的能力,请设置ColumnEditable财产。默认情况下,运行中的应用程序中不能编辑数据ColumnEditable财产真正的对于列,允许用户编辑该列中的数据。

外的。ColumnEditable = [false false true true true true true];

患者资料表。应用程序用户点击了第一行的健康状态单元格,该单元格将显示一个下拉菜单,选项为“较差”、“正常”、“良好”和“优秀”。

创建一个回调

表格对象有两个常用的回调。的CellSelectionCallback当用户选择不同的单元格时执行。的CellEditCallback当用户更改单元格中的值时执行。

外的。CellEditCallback = @ageCheckCB;

例如,如果您想要年龄列中包含之间的值0120,设置CellEditCallback像这样的函数:

函数eventdata ageCheckCB (src)
如果(eventdata.Indices(2) == 2 &&...%检查列2(eventdata。NewData < 0 || eventdata。NewData > 120)) tableData = src.Data;eventdata.Indices tableData {eventdata.Indices (1), (2)} = eventdata.PreviousData;src。数据= tableData;%将数据设置回其原始值警告(年龄必须在0到120岁之间。警告用户结束
结束

如果用户输入一个超出可接受范围的值,回调函数将返回一个警告,并将单元格值设置为之前的值。

获取所有表属性

要查看表的所有属性,请使用得到命令。

(外的)
BackgroundColor: [3x3 double] BeingDeleted: off BusyAction: 'queue' ButtonDownFcn: " cellleditcallback: @ageCheckCB CellSelectionCallback: " Children: [0x0 handle] ColumnEditable: [0 0 1 1 1 1] ColumnFormat: {} ColumnName: {6x1 cell} ColumnSortable: 1 ColumnWidth: {'auto' [75] 'auto' 'auto' 'auto' [100]} ContextMenu:[0 x0 GraphicsPlaceholder] CreateFcn:“数据:[100 x6表]DeleteFcn:“DisplayData: [100 x6表]DisplayDataChangedFcn:“启用:”的程度:[0 0 0 0]FontAngle:“正常”字体名:“Helvetica”字形大小:12 FontUnits:“像素”FontWeight:“正常”ForegroundColor: [0 0 0] HandleVisibility:”“InnerPosition:[15 25 565 200]可中断:on KeyPressFcn: " KeyReleaseFcn: " Layout: [0x0 matlab.ui.layout.]LayoutOptions] OuterPosition: [15 25 565 200] Parent: [1x1 Figure] Position: [15 25 565 200] rearrangeablecolcolumns: off RowName: 'numbered' RowStriping: on styleconconfigurations: [0x3 table] Tag: " Tooltip: " Type: 'uitable' Units: 'pixels' UserData: [] Visible: on