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 件のコメント

Andy
Andy 2015 年 4 月 18 日
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/

サインインしてコメントする。

 採用された回答

Honglei Chen
Honglei Chen 2012 年 7 月 10 日
編集済み: John Kelly 2015 年 2 月 26 日

0 投票

その他の回答 (3 件)

Jan
Jan 2012 年 7 月 10 日

7 投票

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 2012 年 7 月 10 日

0 投票

Thank you, very helpful.
Michael Adelman
Michael Adelman 2012 年 7 月 10 日
編集済み: Michael Adelman 2012 年 7 月 10 日

0 投票

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 件のコメント

Honglei Chen
Honglei Chen 2012 年 7 月 10 日
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 2012 年 7 月 11 日
thank you.
Jan
Jan 2012 年 7 月 11 日
@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.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

タグ

質問済み:

2012 年 7 月 10 日

コメント済み:

2015 年 4 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by