HI,
I have two radio buttons in GUI. I want to make that only one button can be pressed at a time. what is the best way do it?
thanks,

1 Kommentar

Andy
Andy am 18 Apr. 2015
A Button Group panel is the best way make button selections exclusive. Here is a tutorial on how to do it: https://codemusician.wordpress.com/2013/03/15/gui-tutorial-how-to-create-and-use-radio-button-groups-in-matlab/

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Honglei Chen
Honglei Chen am 10 Jul. 2012
Bearbeitet: John Kelly am 26 Feb. 2015

0 Stimmen

Weitere Antworten (3)

Jan
Jan am 10 Jul. 2012

7 Stimmen

I prefer to control this manually:
handles.FigureH = figure;
handles.radio(1) = uicontrol('Style', 'radiobutton', ...
'Callback', @myRadio, ...
'Units', 'pixels', ...
'Position', [10, 10, 80, 22], ...
'String', 'radio 1', ...
'Value', 1);
handles.radio(2) = uicontrol('Style', 'radiobutton', ...
'Callback', @myRadio, ...
'Units', 'pixels', ...
'Position', [10, 40, 80, 22], ...
'String', 'radio 2', ...
'Value', 0);
...
guidata(handles.FigureH, handles);
And the callback:
function myRadio(RadioH, EventData)
handles = guidata(RadioH);
otherRadio = handles.radio(handles.radio ~= RadioH);
set(otherRadio, 'Value', 0);
Michael Adelman
Michael Adelman am 10 Jul. 2012

0 Stimmen

Thank you, very helpful.
Michael Adelman
Michael Adelman am 10 Jul. 2012
Bearbeitet: Michael Adelman am 10 Jul. 2012

0 Stimmen

I created uibuttongroup following your suggestions as follows:
% Create the button group. h = uibuttongroup('visible','off', 'Units', 'pixels','Position',[100 717 301 151]); handles.h = h; % Create three radio buttons in the button group. u0 = uicontrol('Style','Radio','String','Analog_Input',... 'pos',[19 75 137 52],'parent',h,'HandleVisibility','off'); u1 = uicontrol('Style','Radio','String','Function_input',... 'pos',[19 31 131 57],'parent',h,'HandleVisibility','off');
% Initialize some button group properties.
set(h,'SelectedObject',[]); % No selection set(h,'Visible','on');
I don't have any Callback. And it doesn't work - any suggestion where the problem might be?
by saying doesn't work, I get multiple selection.

3 Kommentare

Honglei Chen
Honglei Chen am 10 Jul. 2012
The following code worked well for me, I cannot get multiple selection.
h = uibuttongroup('Units', 'pixels');
% Create three radio buttons in the button group.
u0 = uicontrol('Style','Radio','String','Analog_Input',...
'pos',[19 75 137 52],'parent',h,'HandleVisibility','off');
u1 = uicontrol('Style','Radio','String','Function_input',...
'pos',[19 31 131 57],'parent',h,'HandleVisibility','off');
Michael Adelman
Michael Adelman am 11 Jul. 2012
thank you.
Jan
Jan am 11 Jul. 2012
@Micheal: Please read the instructions for formatting code in this forum. E.g. the "About Matlab Answers" would be a good point to start from.

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by