creating callback for each string of a popupmenu in GUI

42 ビュー (過去 30 日間)
sermet 2014 年 7 月 5 日
回答済み: Image Analyst 2014 年 7 月 5 日
%I have a popupmenu in GUI and I created 3 strings (x,y,z) in this popupmenu. I need to create callback for each 3 strings. Each string has different codes so when user click one of them, related popupmenu's codes need to work.


Image Analyst
Image Analyst 2014 年 7 月 5 日
Try this:
function popupmenu1_Callback(hObject, eventdata, handles)
% Get value of popup
selectedIndex = get(handles.popupmenu1, 'value');
% Take action based upon selection
if selectedIndex == 1
results = Function1();
elseif selectedIndex == 2;
results = Function2();
elseif selectedIndex == 3;
results = Function3();
catch ME
errorMessage = sprintf('Error in function %s() at line %d.\n\nError Message:\n%s', ...
ME.stack(1).name, ME.stack(1).line, ME.message);
fprintf(1, '%s\n', errorMessage);

その他の回答 (1 件)

Robert Cumming
Robert Cumming 2014 年 7 月 5 日
Create a single callback for the popupmenu then switch inside that callback based on which string is selected, i.e.
function popupCallback ( obj, event )
str = get ( obj, 'string' );
val = get ( obj, 'value' );
switch str{val}
case 'str1'
callbackItem1 ();
case 'str2'
callbackItem2 ();
case 'str3'
callbackItem3 ();
  1 件のコメント
sermet 2014 年 7 月 5 日
Robert, this is my function from created popupmenu in GUI;
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 % function popupCallback ( obj, event )
%when I implement your codes into this function, it gives error;
"Undefined function or variable 'obj'"


Community Treasure Hunt

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

Start Hunting!

Translated by