uitable's cells as a readonly

19 visualizaciones (últimos 30 días)
Mtlb Usr
Mtlb Usr el 1 de Mzo. de 2011
Hi,
I would like to know how I can set several cells of a uitable like a readonly effect.
Thanks
regards.
  2 comentarios
Sarah Wait Zaranek
Sarah Wait Zaranek el 1 de Mzo. de 2011
Would you like them to be not editable? Did you already try the "ColumnEditable" property?
Mtlb Usr
Mtlb Usr el 2 de Mzo. de 2011
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

Iniciar sesión para comentar.

Respuesta aceptada

Mtlb Usr
Mtlb Usr el 3 de Mzo. de 2011
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 comentarios
Oleg Komarov
Oleg Komarov el 3 de Mzo. de 2011
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 el 3 de Mzo. de 2011
Hi Oleg,
Thank you for u answer.
I will try to get a new matlab.
regards

Iniciar sesión para comentar.

Más respuestas (1)

Oleg Komarov
Oleg Komarov el 1 de Mzo. de 2011
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 comentarios
Oleg Komarov
Oleg Komarov el 2 de Mzo. de 2011
Change ColumnEditable to Editable if that's the case for your version.
Mtlb Usr
Mtlb Usr el 3 de Mzo. de 2011
Hi Oleg,
How can I use Editable property?
I have got r2007b version of matlab.
thanks
regards

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by