表格数据在此位置无法编辑,为什么此复选框不允许我查看?

时间:2015-03-16 13:47:59

标签: matlab matlab-uitable

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);

如果你运行这个脚本,它应该吐出一个数字。但我只能选择表格X列中的复选框。那是为什么?

1 个答案:

答案 0 :(得分:1)

因为变量vals没有足够的数据来填充表格。

简单地复制它以形成一个2列数组并且它可以工作。即添加以下行:

vals = [vals vals]

在创建表格之前。

整个代码:

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)));

输出:

enter image description here

修改

要获取所选单元格的索引,您不需要专门添加新变量。

通过设置CellSelectionCallback,您可以直接获取索引。

我们假设您在创建表格后添加此行:

set(t,'CellSelectionCallback',@SelCB)

然后该函数可用于获取索引,如下所示:

function SelCB(~, event)

    SelectedCells = event.Indices        
 end

每次选择/取消选择单元格时,将输出1x2元素向量。