Max number of checked checkboxes/radiobuttons

2 次查看(过去 30 天)
Hi i have GUI with 18 checkboxes/radiobuttons. Dont know what is better for me...Is there way to set that only two of them can be checked at the same time?? Thanks.

采纳的回答

Walter Roberson
Walter Roberson 2013-4-12
Only by using the callbacks to check and enforce it.
  9 个评论
Image Analyst
Image Analyst 2013-4-14
function CountSelectedStates(hobject, event, handles)
% Get states of all the checkboxes.
selectedStates(1) = get(handles.checkbox1, 'value');
selectedStates(2) = get(handles.checkbox2, 'value');
selectedStates(3) = get(handles.checkbox3, 'value');
selectedStates(4) = get(handles.checkbox4, 'value');
% Count how many are checked right now.
totalNumberSelected = sum(selectedStates);
% Check which one was just toggled
if hObjects = handles.checkbox1
% If you want to implement Walter's suggestion.
% They just clicked on checkbox 1.
% more code.....
end
if totalNumberSelected >= 3
% Clear states of all the checkboxes, like you wanted.
selectedStates(1) = get(handles.checkbox1, 'value');
selectedStates(2) = get(handles.checkbox2, 'value');
selectedStates(3) = get(handles.checkbox3, 'value');
selectedStates(4) = get(handles.checkbox4, 'value');
% Keep the one they clicked on checked.
set(hObject, 'value', 'on');
end
and so on.
Walter Roberson
Walter Roberson 2013-4-14
Some small corrections to the above:
if hobject == handles.checkbox1
and to clear the check boxes, do not get() the values, instead
set(handles.checkbox1, 'value', 0);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 App Building 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by