uitable's cells as a readonly

조회 수: 20 (최근 30일)
Mtlb Usr
Mtlb Usr 2011년 3월 1일
Hi,
I would like to know how I can set several cells of a uitable like a readonly effect.
Thanks
regards.
  댓글 수: 2
Sarah Wait Zaranek
Sarah Wait Zaranek 2011년 3월 1일
Would you like them to be not editable? Did you already try the "ColumnEditable" property?
Mtlb Usr
Mtlb Usr 2011년 3월 2일
Hi Sarah,
Yes,you're right.
No, I have got a old version of matlab. I think that in this version the similar property is "Editable", but I'm not sure.
regards

댓글을 달려면 로그인하십시오.

채택된 답변

Mtlb Usr
Mtlb Usr 2011년 3월 3일
Hi,
I have tested with this example but I can't set the column that I want.
E.g: hT=uitable(...); %To set the 1st col as a noneditable. set(hT,'Editable',[false true true]);
The issue is that one error appears saying that the parameter value must be scalar...
How can I resolve it?
thanks
regards
  댓글 수: 2
Oleg Komarov
Oleg Komarov 2011년 3월 3일
Unfortunately I see the general problem but I don't have R2007b, don't see how I can help you.
* You may try to update your current version, if feasible
* Use this submission http://www.mathworks.com/matlabcentral/fileexchange/11201
* This thread may be useful: http://www.mathworks.com/matlabcentral/newsreader/view_thread/165066
* And finally this migration note for uitable from 2007b to 2008a: http://www.mathworks.com/help/techdoc/uitools_csh/error_pages/uitable_errorpage.html
Mtlb Usr
Mtlb Usr 2011년 3월 3일
Hi Oleg,
Thank you for u answer.
I will try to get a new matlab.
regards

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Oleg Komarov
Oleg Komarov 2011년 3월 1일
Here an example that allows you to set as non editable just some cells of a column:
function exampleGUI
f = figure('Position',[200 200 400 150]);
dat = rand(3);
cnames = {'X-Data','Y-Data','Z-Data'};
rnames = {'First','Second','Third'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,...
'RowName',rnames,'Position',[20 20 360 100],...
'ColumnEditable',[true true true],'CellEditCallback',@t_ced);
function t_ced(varargin)
% Retrieve info on edited cell
edC = varargin{2};
% Transform subscipts of selected cell into idx
idx = sub2ind(size(dat),edC.Indices(1),edC.Indices(2));
% If idx falls into 5-9 range set back previous value
if ismember(idx, 5:9)
data = get(t,'data');
data(idx) = edC.PreviousData;
set(t,'data',data)
end
end
end
Save it as exampleGUI and run it. Only cells 5-9 are non editable.
  댓글 수: 3
Oleg Komarov
Oleg Komarov 2011년 3월 2일
Change ColumnEditable to Editable if that's the case for your version.
Mtlb Usr
Mtlb Usr 2011년 3월 3일
Hi Oleg,
How can I use Editable property?
I have got r2007b version of matlab.
thanks
regards

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by