To design a user friendly GUI

2 views (last 30 days)
nl2605
nl2605 on 9 Aug 2013
Commented: nl2605 on 27 Sep 2013
Hello All
I am trying to design a GUI in which the number of radio buttons change according to the number calculated by another function. The important thing is, although I am able to get the GUI, I am not able to access the radio buttons being created. I can use gcbo. But I can't distinguish between the buttons.
for i = 1:5
handles.tr(i) = uicontrol('Style','radiobutton','String','Translation',... 'pos',[40 (1+(i*30)) 100 30],'HandleVisibility','off');
set(handles.tr(i),'Callback',@selcbk);
handles.flag_tr = 1;
handles.check_tr = 1;
end
But when I try to access the radio buttons, I can only do that using gcbo. Could you suggest some method by which I can distinguish between the buttons and hence, access them?
  3 Comments
nl2605
nl2605 on 9 Aug 2013
Yea, I don't need to. I know that. But I don't know where else to declare the variables. I have used GUIDE always to construct GUI's. This is the first time I making my own code. Anyway the issue is that I don't know how to access the properties of the radiobuttons being made.
Jan
Jan on 9 Aug 2013
And does my answer help you in any way?

Sign in to comment.

Accepted Answer

Jan
Jan on 9 Aug 2013
The problem is not clear to me. Perhaps this helps:
handles.flag_tr = 1; % Once only
handles.check_tr = 1;
for i = 1:5
handles.tr(i) = uicontrol('Style','radiobutton','String','Translation',...
'pos',[40 (1+(i*30)) 100 30],'HandleVisibility','off', ...
'Callback',@selcbk);
end
guidata(FigureHandle, handles);
...
function selcbk(ObjectH, EventData)
handles = guidata(ObjectH);
allBoxes = handles.tr;
selectedBox = ObjectH;
otherBoxes = allBoxes(allBoxes ~= selectedBox);
  3 Comments
nl2605
nl2605 on 27 Sep 2013
Its just that I need to produce a certain number of radio buttons(the number decided by another function). The radio buttons should appear in columns of two, where each column represents lets say a decision. I can produce the radio buttons. But I am not able to store which is getting selected by the user.
nl2605
nl2605 on 27 Sep 2013
Edited: nl2605 on 27 Sep 2013
Phew!! This worked. Thanks a lot! It was my mistake it was giving errors.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 27 Sep 2013
How about you use GUIDE to place all of the radio buttons that you might ever need on the GUI, and then jsut set the visibility property to on or off depending if you want it to appear or not?
set(handles.radio1, 'Visibility', 'on');
set(handles.radio2, 'Visibility', 'on');
set(handles.radio3, 'Visibility', 'off');
set(handles.radio4, 'Visibility', 'off');
  6 Comments
nl2605
nl2605 on 27 Sep 2013
Edited: nl2605 on 27 Sep 2013
Hmmm..I like the GUIDE way too. But I thought this problem wouldn't have a solution with GUIDE. But I am slowly learning there isn't any 'no solution'. Thanks a lot. By the way can I accept both your solutions for future reference for others?
nl2605
nl2605 on 27 Sep 2013
Ohh I don't think so I can. But anyway thanks a ton!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!