访问Matlab GUI中的复选框

时间:2014-11-18 18:28:38

标签: matlab matlab-uitable

我有一个关于访问Matlab uitable中的复选框的问题。我在Matlab GUI中有一个表,其中有一列复选框。我想在单击复选框时打开特定的pdf文件。 但我找不到回收的uitable内的复选框。 希望问题是陈述清楚。

提前谢谢, Abhirup

1 个答案:

答案 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字段,它为您提供已编辑并导致回调执行的单元格,以及PreviousDataNewData字段,它们为您提供之前和之后的值已编辑的单元格。

您还需要检查已编辑的单元格是否为复选框(CellEditCallback在对表格中的单元格进行任何更改时执行)。根据这些数据,确定您要采取的行动。