MATLAB R2012b で GUIDE を使用しておりuitable
、編集可能な論理チェックボックスがあります。Cell Edit コールバックは次のとおりです。
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
チェックボックスの 1 つをクリックすると、テーブル内のデータが適切に更新されていることがわかります (両方とも更新された値get(hObject,'Data')
をhandles.checked(row)
返します) が、GUI の実際のチェックボックスは視覚的にチェックされません。もう一度クリックすると、変数は再び更新されますが、チェックボックスはオフのままです。
したがって、データは更新されていますが、GUI は更新されていません。ここで何がうまくいかないのですか?
注: 論理チェックボックスは GUIDE で編集可能に設定されているため、これは問題ではありません。