Get value from popup menu and use it in different function

Asked by Samer Husam on 15 May 2012
Latest activity Commented on by Walter Roberson on 23 Apr 2013 at 6:00

Hi; I am doing GUI which has a popup menu that allow the user to choose from several options, lets say I have three options each one has different values for (I,V,P) current, voltage and power. my coding is like this (for example):

function popupmenu1_Callback(hObject, eventdata, handles)
  switch get(handles.popupmenu,'Value')   
    case 1
      I=7;
      V=20;
      p=130;
    case 2
      I=5;
      V=30;
      p=170;
    otherwise
 end  
 then I need to use these values in some calculation in pushbutton_callback, which it coding as below(for example):
function pushbutton1_Callback(hObject, eventdata, handles)

what code can I use to get these values from the popup menu ?? I need your help please.

0 Comments

Samer Husam

Products

No products are associated with this question.

1 Answer

Answer by Jan Simon on 15 May 2012

Either store the values in the popup's UserData:

function popupmenu1_Callback(hObject, eventdata, handles)
switch get(handles.popupmenu,'Value')   
  case 1
    S.I=7;
    S.V=20;
    S.p=130;
  case 2
    S.I=5;
    S.V=30;
    S.p=170;
  otherwise
end 
set(handles.popupmenu, 'UserData', S);

Then you can access the values by:

S = get(handles.popupmenu, 'UserData');

 

Or use the handles struct:

function popupmenu1_Callback(hObject, eventdata, handles)
handles = guidata(hObject);  % Update!
switch get(handles.popupmenu,'Value')   
  case 1
    S.I=7;
    S.V=20;
    S.p=130;
  case 2
    S.I=5;
    S.V=30;
    S.p=170;
  otherwise
end 
handles.S = S;
guidata(hObject, handles);  % Update!

5 Comments

Samer Husam on 17 May 2012

I am getting an error when pressing the push button, saying that :

??? Error using ==> mrdivide
Matrix dimensions must agree.
??? Error while evaluating uicontrol Callback

as I can see, I don't think the handles is delivered in the input of push-button.

Mustafa on 23 Apr 2013 at 5:49

I think you should do it in this way at your push button:

S = get(handles.popupmenu1,'Value'); %get currently selected option from menu

S = handles.S; % import

and at the end of your code in the pop up menu add this:

handles.S = S;

I hope it help you...

Walter Roberson on 23 Apr 2013 at 6:00

That would fetch the Value from the control, and then overwrite that fetched value with the previously stored information. You should do one or the other, not both.

Samer did not show any division in the code, so we cannot say what was causing the mrdivide problem.

Jan Simon

Contact us