Table 此位置的数据不可编辑,为什么此复选框不让我选中它?
Table data is not editable at this location, why won't this checkbox let me check it?
f = figure;
columnname = {'X' , 'Y'};
Selection = {'A','B','C','D','E'}
[vals{1:numel(Selection),1}]=deal(false)
columnform = {'logical','logical'};
t = uitable('Data',vals,'ColumnName', columnname, 'ColumnFormat', columnform,'ColumnEdit',[true true true], 'RowName', Selection);
如果你运行这个脚本它应该吐出一个数字。但我只能 select table 的 X 列中的复选框。这是为什么?
这是因为变量 vals
没有包含足够的数据来填充 table。
简单地复制它以形成一个 2 列数组并且它有效。即添加这一行:
vals = [vals vals]
在创建 table.
之前
完整代码:
f = figure;
close all
clc
clear
columnname = {'X' , 'Y'};
Selection = {'A','B','C','D','E'}
[vals{1:numel(Selection),1}]=deal(false);
vals = [vals vals]
columnform = {'logical','logical'};
t = uitable('Data',vals,'ColumnName', columnname, 'ColumnFormat', columnform, 'RowName', Selection,'ColumnEdit',true(1,2*size(Selection,1)));
输出:
编辑:
要获取所选单元格的索引,您不需要专门添加新变量。
通过设置 CellSelectionCallback
可以直接获取索引。
假设您在创建 table:
之后添加了这一行
set(t,'CellSelectionCallback',@SelCB)
然后函数可以用来获取索引如下:
function SelCB(~, event)
SelectedCells = event.Indices
end
每次单元格为 selected/deselected 时将输出一个 1x2 元素向量 selected/deselected。
f = figure;
columnname = {'X' , 'Y'};
Selection = {'A','B','C','D','E'}
[vals{1:numel(Selection),1}]=deal(false)
columnform = {'logical','logical'};
t = uitable('Data',vals,'ColumnName', columnname, 'ColumnFormat', columnform,'ColumnEdit',[true true true], 'RowName', Selection);
如果你运行这个脚本它应该吐出一个数字。但我只能 select table 的 X 列中的复选框。这是为什么?
这是因为变量 vals
没有包含足够的数据来填充 table。
简单地复制它以形成一个 2 列数组并且它有效。即添加这一行:
vals = [vals vals]
在创建 table.
之前完整代码:
f = figure;
close all
clc
clear
columnname = {'X' , 'Y'};
Selection = {'A','B','C','D','E'}
[vals{1:numel(Selection),1}]=deal(false);
vals = [vals vals]
columnform = {'logical','logical'};
t = uitable('Data',vals,'ColumnName', columnname, 'ColumnFormat', columnform, 'RowName', Selection,'ColumnEdit',true(1,2*size(Selection,1)));
输出:
编辑:
要获取所选单元格的索引,您不需要专门添加新变量。
通过设置 CellSelectionCallback
可以直接获取索引。
假设您在创建 table:
之后添加了这一行set(t,'CellSelectionCallback',@SelCB)
然后函数可以用来获取索引如下:
function SelCB(~, event)
SelectedCells = event.Indices
end
每次单元格为 selected/deselected 时将输出一个 1x2 元素向量 selected/deselected。