Get value from popup menu and use it in different function

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.

댓글 수: 1

i am tring to use the value of first popupmenu1 in another popupmenu2 but the problem is,it is not updating the value of S (7 20 130). always showing S (5 30 170) how can we use the value of popupmenu1 case 1 i.e I=7; V=20;p=130; in another popupmenu2 case 1,case 2 ... and generate the result and the same case for popmenu1 case 2 value i.e I=5; V=30;p=170; in another popupmenu2 case 1,case 2...and so on and generate the result

댓글을 달려면 로그인하십시오.

답변 (4개)

Jan
Jan 2012년 5월 15일
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!

댓글 수: 8

I Can't get any Values in call back function.
shall you explain how can i write the code in push button function ?
I used this way:
S = get(handles.popupmenu, 'UserData');
I=S.I;
V=S.V;
P=S>P;
but its not working.. please help.
Please explain what "it's not working" means. Do you get an error message? Is the "handles" struct delivered in the inputs of the push-button callback uptodate - most of all, does it contain the field ".popupmenu"? If not, use GUIDATA for updating as shown in the examples I have posted.
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.
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
Walter Roberson 2013년 4월 23일
편집: Walter Roberson 2013년 4월 23일
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.
I want to ask that how can we use the values of handles.S in push button ...if iam using If else command in push button to either select 'Case 1' of popup menu or 'case 2' so how can i select the cases of Popmenu inside a pushbutton ..can anyone share code with me .Thanks
Thanks Jam Simon, 1st method worked for me, but to use the variables of popupmenu_callback (i.e S.V, S.P, S.I) in pushbutton_callback I had to use the following commands as well:
V=S.V;
P=S.P;
I=S.I;
but thanks a lot for your answer.
If I write
V=S.V;
P=S.P;
I=S.I;
type of code. I get an error 'Dot indexing is not supported for variables of this type.'
Please help me

댓글을 달려면 로그인하십시오.

sourabh jain
sourabh jain 2015년 6월 6일
편집: Walter Roberson 2015년 6월 6일
i am tring to use the value of first popupmenu1 in another popupmenu2 but the problem is,it is not updating the value of S (7 20 130). always showing S (5 30 170)
see the code
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);
function popupmenu2_Callback(hObject, eventdata, handles)
switch get(handles.popupmenu,'Value')
case 1
set(handles.popupmenu, 'UserData', S);
i=S.I
v=S.V
p=i*v
case 2
set(handles.popupmenu, 'UserData', S);
i=S.I
v=S.V
p=i*v
otherwise
end

댓글 수: 2

Then quit referring to "handles.popupmenu" - use either handles.popupmenu1 or handles.popupmenu2, whichever you want.
can you help me on this issue
function popupmenu8_Callback(hObject, eventdata, handles) handles = guidata(hObject); contents = get(handles.popupmenu8,'Value') switch contents case 1
S.M=7;
S.P=20;
case 2
S.M=5;
S.P=30;
otherwise
end
set(handles.popupmenu8, 'UserData', S);
guidata(hObject, handles);

댓글을 달려면 로그인하십시오.

Walter Roberson
Walter Roberson 2015년 6월 6일
In the second popup you need
S = get(handles.popupmenu, 'UserData')

댓글 수: 1

can u please resolve this issue for me as i have tried the above code i am getting error function popupmenu8_Callback(hObject, eventdata, handles) % hObject handle to popupmenu8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles = guidata(hObject); % Update! contents = get(handles.popupmenu8,'Value') switch contents case 1
S.M=7;
S.P=20;
case 2
S.M=5;
S.P=30;
otherwise
end
%handles.S = S; set(handles.popupmenu8, 'UserData', S); guidata(hObject, handles);

댓글을 달려면 로그인하십시오.

Deepa AS
Deepa AS 2015년 7월 29일

0 개 추천

How should the variable declared in popup menu be called in pushbutton call back function . Can anybody help me out with this? Please.
Thank you Deepa

댓글 수: 1

Please open a new thread for a new question. This is the section for answers.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

2012년 5월 15일

댓글:

2019년 1월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by