1
我在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中編輯,所以這不是問題。