To design a user friendly GUI

4 vues (au cours des 30 derniers jours)
nl2605
nl2605 le 9 Août 2013
Commenté : nl2605 le 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 commentaires
nl2605
nl2605 le 9 Août 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 le 9 Août 2013
And does my answer help you in any way?

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 9 Août 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 commentaires
nl2605
nl2605 le 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 le 27 Sep 2013
Modifié(e) : nl2605 le 27 Sep 2013
Phew!! This worked. Thanks a lot! It was my mistake it was giving errors.

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 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 commentaires
nl2605
nl2605 le 27 Sep 2013
Modifié(e) : nl2605 le 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 le 27 Sep 2013
Ohh I don't think so I can. But anyway thanks a ton!

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by