我希望我的uitable有复选框,你可以点击它。如果我这样做,我会收到警告:表格数据在此位置无法编辑。
就像现在一样,框出现但你无法点击它们。
p=figure
D={'1', '2', '3' ,'4', '5','6'
'7', '8', '9', '10', '11' ,'12'}
data=D(:,1)
cnames={'', 'Left', 'Right','P1', 'P2', 'P3'}
table_resultat_nip=uitable('position',[0 200 500 200],...
'parent',p,...
'columnname', cnames,...
'rowname', '',...
'data',data,...
'ColumnFormat',{'char','logical','logical','logical','logical','logical'},...
'columneditable',[false, true, true, true, true, true]) ;
答案 0 :(得分:1)
您要编辑的单元格数据需要格式正确。
有两个问题:
<强> 1)强>
data = D(:,1);
我知道您只想使用第一列的数据,但您还需要将其他列声明为locicals。
<强> 2)强>
您的数据不适合columnformat
,请使用:
D = {'1', false, false ,false, false, false; ...
'7', false, false, false, false, false};
<强>解决方案:强>
D = {'1', '2', '3' ,'4', '5','6' ;
'7', '8', '9', '10', '11' ,'12'};
data = [ D(:,1) num2cell( false( size(D,1) , size(D,2)-1) ) ];
%// where the -1 depends on how many "real" data columns you have.
或更通用:
N = 1; %// Number data columns to keep
data = [ D(:,1:N) num2cell( false( size(D,1) , size(D,2)-N) ) ];
总而言之,以下代码有效,现在您需要将其应用于您的案例:
p = figure;
D = {'1', '2', '3' ,'4', '5','6' ;
'7', '8', '9', '10', '11' ,'12'};
data = [ D(:,1) num2cell( false( size(D,1) , size(D,2)-1) ) ];
cnames = {'', 'Left', 'Right','P1', 'P2', 'P3'};
table_resultat_nip=uitable('position',[0 200 500 200],...
'columnname', cnames,...
'rowname', '',...
'data',data,...
'ColumnFormat',{'char','logical','logical','logical','logical','logical'},...
'ColumnEditable',[false, true, true, true, true, true]...
);
关于评论:
好的,一个更通用的案例:
N = 1; %// Number data columns to keep
M = 5; %// Number of checkboxes desired
data = [ D(:,1:N) num2cell( false( size(D,1) , M) ) ];