我在 MATLAB R2012b 中使用 GUIDE,并且有一个uitable
可编辑的逻辑复选框。单元格编辑回调如下:
function data_table_CellEditCallback(hObject, eventdata, handles)
row = eventdata.Indices(1);
column = eventdata.Indices(2);
if column ~= 1 % The checkboxes are all in the first row.
guidata(hObject,handles);
return;
end
table_data = get(hObject,'Data');
if table_data(row,column) == true
table_data(row,column) = false;
else
table_data(row,column) = true;
end
set(hObject, 'Data', table_data);
handles.checked(row) = table_data(row,column); % Variable holding the data.
guidata(hObject,handles);
end
当我单击其中一个复选框时,我可以看到表中的数据得到了适当的更新(两者都get(hObject,'Data')
返回handles.checked(row)
了更新的值),但是 GUI 中的实际复选框并未在视觉上被选中。如果我再次单击它,变量将再次更新,但复选框保持未选中状态。
所以数据正在更新,但 GUI 没有。这里出了什么问题?
注意:逻辑复选框在 GUIDE 中设置为可编辑,所以这不是问题。