MATLAB R2012b에서 GUIDE를 사용하고 있으며 편집 가능한 논리 확인란이있는 uitable
이 있습니다. 셀 편집 콜백은 다음과 같습니다 : 나는 확인란 중 하나를 클릭하면MATLAB 적합한 논리 확인란을 선택하지 않았습니다.
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에서 편집 가능으로 설정되어 있으므로 문제가되지 않습니다.