场上
创建表用户界面组件
描述
例子
以编程方式更新表数据
显示和编程更新表格
表UI组件中的数组数据。(只有当表UI组件位于用金宝appuifigure
函数。App Designer使用这种类型的图形来创建应用程序。)
通过从文件中读入海啸数据来创建一个表数组,并在表UI组件中显示数据的子集。
T =可读的(“tsunamis.xlsx”);Vars = {“年”,“MaxHeight”,“有效性”};T = T (1:20,vars);FIG = ufigure;Uit = uitable(图,“数据”t);
控件更新第一行中海啸的有效性数据
属性的UI表。
unit . data . validity (1) = {“明确的海啸”};
控件中的数据,将最大高度数据从米转换为英尺MaxHeight
列。
unit . data . maxheight = unit . data . maxheight *3.281;
启用并编码响应交互式数据编辑
创建一个应用程序,允许用户对表格数据进行排序和编辑,并在数据发生变化时更新数据可视化。控件创建的图中才支持交互式列排序金宝appuifigure
函数。App Designer使用这种类型的图形来创建应用程序。)
首先,创建一个名为tsunamisData.m
.在程序文件中:
创建一个
表格
数组,通过调用readtable
函数。创建一个UI图。
创建一个可排序和可编辑的表UI组件,以显示在图中。存储
表格
数组到组件的数据
财产。创建一个气泡图来可视化海啸数据,其中气泡的坐标表示海啸的经纬度,气泡的大小表示最大高度。
指定一个
DisplayDataChangedFcn
回调函数,该函数使用DisplayData
属性,当应用程序用户在表格UI组件中对列进行排序或编辑单元格时更新气泡图。
函数tsunamisData创建表数组T =可读的(“tsunamis.xlsx”);Vars = {“纬度”,“经”,“MaxHeight”};T = T (1:20,vars);创建UI图FIG = ufigure;fig.Position(3:4) = [722 360];创建表UI组件Uit =可使用(图);外的。数据= t; uit.ColumnSortable = true; uit.ColumnEditable = [false false true]; uit.Position(3) = 290; uit.DisplayDataChangedFcn = @updatePlot;%创建气泡图Ax = uiaxes(fig);x. position (1) = 315;ax.XLabel.String =“经”;ax.YLabel.String =“纬度”;x = t.经度;y = t.纬度;sz = t.MaxHeight;bubblechart (ax, x, y,深圳)当表数据发生变化时更新气泡图函数updatePlot(src,event) t = unit . displaydata;x = t.经度;y = t.纬度;sz = t.MaxHeight;bubblechart (ax, x, y,深圳)结束结束
当鼠标悬停在可排序列上时,可排序列的标题中会显示箭头。根据海啸的最大高度对表格进行排序。
通过首先双击表格单元格,然后输入新的高度,编辑第二行中海啸的最大高度为30米。注意气泡图是如何更新的。
根据数据改变特定单元格的颜色
类为表UI组件的行、列或单元格设置样式uistyle
而且addStyle
功能。样式只在表UI组件位于用金宝appuifigure
函数。App Designer使用这种类型的图形来创建应用程序。)
样式表UI组件中包含缺失值的单元格。在本例中,为单元格添加红色背景色样式南
值。
将海啸样本数据作为表数组读入工作区。然后,创建一个表UI组件来显示数据。
Tdata =可读数据(“tsunamis.xlsx”);Vars = {“年”,“月”,“天”,“小时”,...“MaxHeight”,“原因”,“EarthquakeMagnitude”};Tdata = Tdata (1:100,vars);图= ufigure图(“位置”,[500 500 760 360]);Uit =可使用(图);外的。位置= [20 20 720 320];外的。数据= tdata; uit.RowName =“编号”;
使用ismissing
函数获取包含缺失值的表元素的逻辑数组。找到具有的元素的行下标和列下标南
值。最后,创建一个红色背景色样式,并将其添加到单元格中南
表UI组件中的值。
styleIndices = ismissing(tdata);[row,col] = find(styleIndices);S = ustyle (“写成BackgroundColor”,[1 0.6 0.6]);addStyle(外的年代,“细胞”,行,坳);
以编程方式访问表选择
从R2021b开始,您可以通过编程方式设置和查询选中了哪些表元素,并指定用户是否可以选择单元格、行或列。控件创建的图中仅支持编程式选择金宝appuifigure
函数。App Designer使用这种类型的图形来创建应用程序。)
使用此功能,创建一个应用程序,当用户在表中选择数据时,自动在地图上绘制数据。首先,创建一个名为selectTsunamis.m
.在程序文件中:
方法加载海啸数据
readtable
函数。在面板中创建带有表格UI组件和地理气泡图的UI图。
配置表UI组件。将海啸数据存储在
数据
属性,并允许用户通过设置SelectionType
而且多选
属性。指定一个
SelectionChangedFcn
当应用程序用户更改表选择时更新气泡图的回调。该函数为每个选定的行绘制一个气泡,其中气泡的大小表示最大海啸高度。
函数selectTsunamis负载数据T =可读的(“tsunamis.xlsx”);Vars = {“纬度”,“经”,“MaxHeight”};T = T(1:20,vars);%创建UI组件图= ufigure图(“位置”,[500 500 700 350]);TBL =可适用(图,“位置”,[20 20 250 300]);PNL = uipanel(图,“位置”,[285 20 400 300]);geobubble (pnl [], []);%配置表资源描述。数据= T; tbl.SelectionType =“行”;资源描述。多选=“上”;资源描述。SelectionChangedFcn = @plotTsunami;为每个选定的行绘制海啸数据函数plotTsunami(src,event) rows = event. selection;data = src.Data(rows,:);lat =数据。纬度;long = data.Longitude;ht = data.MaxHeight;geobubble (lat, pnl长,ht);结束结束
运行selectTsunamis
函数,并通过长按选择多个表行Ctrl而点击。剧情根据海啸数据更新。
以编程方式滚动到表行
从R2021a开始,可以使用控件以编程方式滚动到表UI组件的行、列或单元格滚动
函数。控件创建的图形中仅支持编程式滚动金宝appuifigure
函数。App Designer使用这种类型的图形来创建应用程序。)
将示例患者数据作为表数组读入工作区。然后,创建一个表UI组件来显示数据。
Tdata =可读数据(“patients.xls”);Vars = {“年龄”,“收缩”,舒张压的,“抽烟”};Tdata = Tdata (1:40,vars);FIG = ufigure;Uit = uitable(图,“数据”, tdata);外的。RowName =“编号”;
滚动到表的第25行。
滚动(外的,“行”, 25)
数字显示数组
创建一个表UI组件,它显示一个10 × 3的随机整数数组。的数据
属性指定要显示的值,而位置
属性指定图中表的位置和大小。
F =数字;Uit = uitable(f,“数据”3),兰迪(100,10日,“位置”,[20 20 262 204]);
显示混合数据类型
表UI组件可以跨列容纳不同数据类型的混合。
创建一个空的表格
UI组件。
F =数字;Uit =适合(f);
设置数据
属性将数据填充为包含不同类型混合的单元格数组。然后设置位置
属性调整表的位置和大小以适应数据。
D = {“男”52岁的正确;“男”现年40岁的正确;“女”25岁的虚假};外的。数据= d; uit.Position = [20 20 258 78];
设置ColumnName
属性将列标题更改为描述性名称。设置ColumnEditable
财产真正的
这样用户就可以在用户界面中编辑数据。当用户更改UI中的值时,数据
属性更新以反映该更改。
外的。ColumnName = {“性别”,“年龄”,“授权”};外的。ColumnEditable = true;
输入参数
名称-值参数
例子:(图,“数据”,[1 2 3;4 5 6])
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在单引号内(' '
).可以指定多个名称和值对参数为Name1, Value1,…,的家
.
请注意
这里列出的属性是可用属性的子集。有关完整列表,请参见表属性.
数据
- - - - - -表数据
表数组|数字数组|逻辑阵列|单元阵列|字符串数组|……
表数据,指定为以下类型的数组之一:
为了防止警告或南
当用户在可编辑单元格中输入无效数据时显示的值,则写入CellEditCallback
函数将数据转换为适当的类型。当用户编辑单元格时,数据
属性更新。
指定一个表数组
类创建的应用程序uifigure
函数时,可以指定数据
属性作为表数组。表数组提供了一种方便的方法来将表格数据存储为MATLAB变量。的表格
,readtable
,array2table
函数创建表数组。相比之下,场上
函数创建表格
UI组件(应用程序的用户界面组件)。
当您指定数据
的属性表格
UI组件作为一个表数组,然后MATLAB设置的格式表格
UI组件自动基于表数组中的值:
默认情况下,应用程序中显示的列名与
VariableNames
属性。改变了ColumnName
的属性表格
UI组件更新UI,但它不更新表数组中的变量名。默认情况下,应用程序中显示的行名与
RowName
属性。改变了RowName
的属性表格
UI组件更新UI,但它不更新表数组中的行名。每个表数组变量的数据类型控制应用程序中相应列的格式
ColumnFormat
属性,MATLAB返回一个警告。
有关显示表数组数据的详细信息,请参见应用程序设计器应用程序中的表数组数据类型.
指定字符向量的数字、逻辑、单元格、字符串数组或单元格数组
使用ColumnFormat
属性指定数值、逻辑、单元格或字符串数组或字符向量的单元格数组的数据的格式。类的数据类型与数据类型之间不匹配ColumnFormat
属性,MATLAB转换数据或显示警告。看到可编辑列的数据显示在ColumnFormat
属性描述以获取更多信息。
ColumnWidth
- - - - - -表列的宽度
“汽车”
(默认)|“健康”
|“1 x”
|1 -n
单元阵列
表列的宽度指定为“汽车”
或者作为1
——- - - - - -n
字符向量、字符串和数值的单元格数组。在uifigure
基于应用程序,你可以额外指定列宽度为“1 x”
或“健康”
.
自动宽度-指定
“汽车”
让MATLAB自动计算列的宽度使用几个因素,其中之一是ColumnName
属性值。适合内容宽度(
uifigure
-指定值为“健康”
将列配置为严格调整宽度以适应列名和数据。此设置允许较窄的列“汽车”
所做的事。均匀宽度(
uifigure
-指定值为“1 x”
要使所有列都具有相同的宽度,请将可用空间等分。固定宽度-指定数值单元格数组,以像素单位定义列宽度。
组合——你可以在单元格数组中组合固定和可变的列宽。单元格数组中的每个元素都对应于表中的一列。如果指定的单元格数组的值小于列数,则没有指定值的列将保留默认值
“汽车”
.如果数组的值大于列数,MATLAB将忽略额外的值。加权可变宽度(
uifigure
-指定一个单元格数组,包含字符向量或由数字连接到的字符串“x”
(例如,“2 x”
,“3 x”
等)。每个列的x因子相对于其他列按比例设置列宽,并考虑UI表中的剩余空间。
例子:uit = uitable(ufigure,'ColumnWidth','auto','Data',[1 2 3;4 5 6])
例子:uit = uitable(ufigure,'ColumnWidth','fit','Data',[1 2 3;4 5 6])
例子:uit = uitable(ufigure,'ColumnWidth',{64,60,40},'Data',[1 2 3;4 5 6])
例子:外的=场上(uifigure ColumnWidth, {' 2 x ', ' 1 x ', ' 1 x '},“数据”,[1 2 3,4 5 6])
例子:uit = uitable(ufigure,'ColumnWidth',{64,"auto",40},'Data',[1 2 3;4 5 6])
例子:外的=场上(uifigure ColumnWidth,{‘配合’,‘1 x’,‘3 x’},“数据”,[1 2 3,4 5 6])
ColumnEditable
- - - - - -能够编辑列单元格
[]
(默认)|逻辑1 -n
数组|逻辑标量
编辑列单元格的能力,指定为:
空逻辑数组(
[]
) -没有可编辑的列。一个逻辑上的1 × -
n
array -该数组指定哪些列是可编辑的。的价值n
等于表中的列数。数组中的每个值都对应一个表列。值为真正的
在数组中使该列中的单元格可编辑。值为假
使该列中的单元格不可编辑。如果数组的值大于列数,MATLAB将忽略多余的值。如果数组的值小于列数,则没有指定值的列是不可编辑的。逻辑标量—整个表是可编辑或不可编辑的。
当用户编辑单元格时,数据
属性更新。
例子:uit = uitable(ufigure,'Data',rand(10,3),'ColumnEditable',[false true true])
例子:uit = uitable(ufigure,'Data',rand(10,3),'ColumnEditable',false)
要使用户能够与包含复选框或弹出菜单的表列中的控件交互,请设置ColumnEditable
财产真正的
.
如果数据
属性为表数组,则为多列或包含不可编辑数据类型的任何变量,如持续时间
,在运行的应用程序中不能编辑ColumnEditable
属性是真正的
.在单元格数组中包含混合数据类型的表数组变量在运行的应用程序中是可编辑的,只要数据类型是可编辑的。
CellEditCallback
- - - - - -单元格编辑回调函数
函数处理|单元阵列|特征向量
单元格编辑回调函数,指定为以下值之一:
一个函数句柄。
第一个元素为函数句柄的单元格数组。单元格数组中的后续元素是传递给回调函数的参数。
包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。
当应用程序用户更改表格单元格的内容时,使用此回调函数执行计算或验证输入。
这个回调函数可以访问关于用户与单元格交互的特定信息(比如单元格索引)。MATLAB将此信息传递到CellEditData
对象作为回调函数的第二个参数。在App Designer中,这个参数被调用事件
.可以使用点表示法查询对象属性。例如,事件。在dices
返回选定单元格的索引。的CellEditData
对象对于指定为字符向量的回调函数不可用。
属性的属性说明如下CellEditData
对象。
财产 |
描述 |
---|---|
指数 |
这是一个1 × 2的数组,包含用户在运行的应用程序中编辑的单元格的行和列索引。 |
DisplayIndices |
这是一个1 × 2的数组,包含与已排序表的显示中已编辑单元格的位置对应的行和列索引。如果用户不对列进行排序,则 |
PreviousData |
这是之前的单元格数据。默认是一个空矩阵, |
EditData |
这是用户输入的值。 |
NewData |
这是MATLAB写的值 的 |
错误 |
这是当MATLAB在用户输入的数据中检测到错误时返回的错误消息。 的 如果 |
源 |
组件执行回调。 |
EventName |
|
当用户编辑一个表格单元格时,MATLAB执行以下步骤:
方法中存储新值
数据
表的属性调用
CellEditCallback
函数(如果存在)
如果该值导致错误,且没有CellEditCallback
函数,然后单元格数据恢复到以前的值,并且不显示错误。
有关编写回调函数的详细信息,请参见应用程序设计器中的回调.
位置
- - - - - -表的位置和大小
[左下宽高]
表的位置和大小,指定为窗体的四个元素向量[左下宽高]
.该表描述了向量中的每个元素。
元素 | 描述 |
---|---|
左 |
父容器左内边缘到表左外边缘的距离 |
底 |
父容器的内底边到表的外底边的距离 |
宽度 |
表的左右外边缘之间的距离 |
高度 |
表的顶部和底部外边缘之间的距离 |
所有的测量单位都由单位
财产。
的位置
值相对于可拉的区域父容器的。可绘制区域是容器边界内的区域,不包括菜单栏或标题等装饰所占用的区域。
单位
- - - - - -计量单位
“像素”
|“归一化”
|“英寸”
|“厘米”
|“点”
|……
度量单位,在本表中指定为其中一个值。
单位价值 | 描述 |
---|---|
“像素” (默认) |
在Windows上,以像素为单位的距离与系统分辨率无关®而且麦金塔电脑系统:
在Linux上®在系统中,像素的大小是由系统分辨率决定的。 |
“归一化” |
这些单元相对于父容器是规范化的。容器的左下角映射到 |
“英寸” |
英寸。 |
“厘米” |
厘米。 |
“点” |
点。1分等于1/72英寸。 |
推荐值为:“像素”
,因为大多数MATLAB应用程序构建功能以像素为单位测量距离。类创建的网格布局管理器,通过将表父化,可以创建一个根据父容器大小重新缩放的表uigridlayout
函数。有关更多信息,请参见以编程方式布局应用程序.
数字
的应用程序
属性创建的应用程序中的表数字
函数,默认值为单位
是“归一化”
.
此外,您还可以指定单位
作为“角色”
.字符单位基于图形根对象的默认uicontrol字体:
字符宽度=字母的宽度
x
.字符高度=两行文本基线之间的距离。
要访问默认的uicontrol字体,请使用get(大的,“defaultuicontrolFontName”)
或集(大的,“defaultuicontrolFontName”)
.
版本历史
在R2008a中引入R2022a:交互式地重新排列列
属性指定在应用程序中以交互方式重新排列表列的能力ColumnRearrangeable
财产。的表UI组件中ColumnRearrangeable
值设置为“上”
,通过点击并拖动列标题来重新排列应用程序中的表列。
类创建的应用程序uifigure
函数,您可以编写一个应用程序来响应当用户重新排列表列通过创建DisplayDataChangedFcn
回调函数。
有关更多信息,请参见表属性.
R2021b:设置、查询和配置表选择选项
使用属性为表UI组件配置选择选项。
属性设置和查询表选择
选择
财产。属性指定用户是否可以选择表单元格、行或列
SelectionType
财产。属性指定用户是否可以选择单个或多个表元素
多选
财产。当用户通过指定选项选择表数据时,更新应用程序
SelectionChangedFcn
回调。
表UI组件中的选择选项仅在应用程序设计器应用程序和用金宝appuifigure
函数。
有关更多信息,请参见表属性.
另请参阅
功能
属性
对MATLAB
Vous avez cliqué sur un lien qui对应à cette命令MATLAB:
倒exécuter la command, saisissez-la dans la fenêtre de command de MATLAB。Les navigateurs web ne 金宝appsupport pas Les command MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。