我有一个关于访问Matlab uitable中的复选框的问题。我在Matlab GUI中有一个表,其中有一列复选框。我想在单击复选框时打开特定的pdf文件。 但我找不到回收的uitable内的复选框。 希望问题是陈述清楚。
提前谢谢, Abhirup答案 0 :(得分:1)
为您的表创建自己的CellEditcallback
。
采用以下示例:
function testcode
% Initialize a basic GUI
h.myfig = figure;
% Initialize a dummy table
cnames = {'a','b'};
cformat = {'char', 'logical'};
rnames = {'1','2'};
mydata = {'firstfile', false; 'secondfile', false};
h.mytable = uitable( ...
'Parent', h.myfig, ...
'CellEditCallback', @boxchecked, ...
'ColumnFormat', cformat, ...
'ColumnName', cnames, ...
'ColumnEdit', true, ...
'RowName', rnames, ...
'Data', mydata ...
);
guidata(h.myfig,h); % Store handles for later
end
function boxchecked(hObject,eventdata)
h = guidata(hObject); % Retrieve handles
% Your code here
end
在boxchecked
功能中设置breakpoint并查看eventdata
给您的数据(另请参阅general callback documentation)。三个重要字段是Indices
字段,它为您提供已编辑并导致回调执行的单元格,以及PreviousData
和NewData
字段,它们为您提供之前和之后的值已编辑的单元格。
您还需要检查已编辑的单元格是否为复选框(CellEditCallback
在对表格中的单元格进行任何更改时执行)。根据这些数据,确定您要采取的行动。