MATLAB: Displaying values in static box for values in pop up menu !!

guiguidematlab guipop up menustatic box

Hello all !!
I am actually trying to create a GUI where i need to display certain values in static box for each chose value in pop up menu .
For example : When chosen 1 should display 1000 in static box and so on ,
i have written the following code in the call back of pop up menu with tag name popupmenu1 and staticbox with tag name text2 , the programs works fine but is not displaying the assigned values to static box !
Where am i going wrong ? Any sort of help is appreciated.
function popupmenu1_Callback(hObject, eventdata, handles)
a= get(handles.popupmenu1,'value');
if a==1
set(handles.text2,'value',1000);
end
if a==2
set(handles.text2,'value',1200);
end
if a==3
set(handles.text2,'value',3000);
end
if a==4
set(handles.text2,'value',4000);
end

Best Answer

  • There is a difference between the Value property and the String property. Also, you're better off using switch (which will make your code cleare), or a dictionary instead of a list of ifs.
    function popupmenu1_Callback(hObject, eventdata, handles)
    switch get(handles.popupmenu1,'Value');
    case 1
    set(handles.text2,'String',1000);
    case 2
    set(handles.text2,'String',1200);
    case 3
    set(handles.text2,'String',3000);
    case 4
    set(handles.text2,'String',4000);
    end
    Or with a dictionary:
    function popupmenu1_Callback(hObject, eventdata, handles)
    dict={1000,1200,3000,4000};
    set(handles.text2,'String',dict(get(handles.popupmenu1,'Value')));
    end