2020-07-26 MATLAB App Designer——关于tanble表设置下拉的方式
对于表格控件(app.ConfigureProject.ConfigureSensorData.Object.InitialValueTable)其内容为table形式,假设对单元格【1,2】设置下拉选项进行设置。
1、表格内容演示:

2、一般的赋值
对指定单元设定下拉,采用categorical
(分类)数组进行赋值。要求,赋值列的ColumnEditable
属性必须为true。
如:
CurrentSensorsList = ['无'; unique(app.ConfigureProject.ConfigureSensorData.Object.InitialValueTable.Data.Sensors)]; % 元胞,列向量 % Sensors 为该表格控件内容Sensors的列变量名称
app.ConfigureProject.ConfigureSensorData.Object.InitialValueTable.Data.Sensors{event.Indices(1,1)} = categorical(CurrentSensorsList); % 给指定表格赋值分类数组


3、进阶的赋值
若要设置成分类数组后仍有数据显示(将32×1categorical替换为QJ-22-02-Y)时的代码:
app.ConfigureProject.ConfigureSensorData.Object.InitialValueTable.Data.Sensors{event.Indices(1,1)}= ...
categorical({'QJ-22-02-Y'},CurrentSensorsList); % categorical 第一个为元胞组,categorical第二个变量为字符向量元胞数组


PS: 出现下拉后,按esc即可退出下拉菜单
4、缺点:
(1)设置完分类数组后,指定单元格没有下拉筛选按钮的提示,这一点很难受;
(2)如果设置表格列ColumnEditable
为false,则无法赋值分类数组;相反可以设置分类数组时,该单元格内数据允许修改(修改刷新表格后程序error),目前看适合用于筛选相似下拉内容,但不适合给单元格赋新值,以后研究。

