How can I create a button to return the indices of a uitable selection?
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have created a simple uitable to display the contents of an N x 1 array, A: g=uitable(f,'Data',A, ....). In essence it is a menu of things to choose from. I would like to select values from the uitable and create a uicontrol button to return the indices of my selection.
I have seen multiple entries for things like event.Indices, CellSelectionCallback, etc. but I am having a hard time understanding it.
Thank you in advance
0 个评论
回答(1 个)
Astarag Chattopadhyay
2017-5-22
Hi,
Here is an example script that creates an 'uitable' with a 'CellSelectionCallback' that retrieves the indices of the selected cells. Further, on the callback for the pushbutton, the values are displayed on the screen.
%function example
%Doc example for uitable
f = figure('Position',[100 100 400 150]);
dat = {6.125, 456.3457;...
6.75, 510.2342;...
7, 658.2;};
columnname = {'Rate', 'Amount'};
columnformat = {'numeric', 'bank'};
columneditable = [false false];
t = uitable('Units','normalized','Position',...
[0.1 0.1 0.9 0.9], 'Data', dat,...
'ColumnName', columnname,...
'ColumnFormat', columnformat,...
'ColumnEditable', columneditable,...
'RowName',[],...
'CellSelectionCallback',@mycb); %Add cellselectioncallback
%Add pushbutton
uicontrol('style','pushbutton','callback',@(~,~)pbcb(t),... %give handle to table
'units','normalized','position',[0 0 0.4 0.2],'string','Return Selection');
end
function mycb(src,evt)
set(src,'UserData',evt.Indices); %Make indices available to everyone through the UITABLE's userdata
end
function pbcb(t)
for i=1:size(t.UserData,1)
x(i)=t.Data(t.UserData(i,1),t.UserData(i,2));
end
if size(x,1)==0
error('Please select the Data');
else
disp(x);
end
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!