How to call callback the code through the selection of push button

3 次查看(过去 30 天)
Hallo, I am building a GUI. I have used a popupmenu button with two options, for example(a,b). How can i callback the code which i have written in the random pushbutton_x when i select case "a" in my push button. Thanks.
Regards, Anush
  4 个评论
Jan
Jan 2017-5-16
Please explain the sentence "I am having trouble with calling this pushbutton1_callback with reference to my popupmenu's which i select." Include the code and mention, what trouble you have. Otherwise giving an answer is based on guessing only.
anush
anush 2017-5-16
% --- Executes on selection change in popupmenu.
selectedIndex = get(handles.popupmenu, 'value');
% Take action based upon selection
if (selectedIndex == 1);
%%%%%%How to call the push button operation here ?? %%%%%%%%
else if (selectedIndex == 2);
% pushbutton_Callback;
h = msgbox('Operation Completed');
end
% --- Executes on button press in pushbutton.
function pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
f = figure;
data = xlsread('abc.xlsm','Data','C7:F23');
t = uitable(f);
display(data);

请先登录,再进行评论。

采纳的回答

Jan
Jan 2017-5-15
When a popup menu entry is selected, the callback of this uicontrol is called. You do not define a callback for the contents of the menu, but for the menu object only. The distinction of different code branches has to be implemented in the callback:
function popupmenuCB(hObject, EventData)
handles = guidata(hObject);
String = get(hObject, 'String');
Value = get(hObject, 'Value');
Selected = String{Value};
switch Selected
case 'a'
...
case 'b'
...
otherwise % No CASE without OTHERWISE
error('Unexpected switch')
end

更多回答(1 个)

Jan
Jan 2017-5-18
编辑:Jan 2017-5-18
After your comment: This is no valid Matlab syntax:
if (selectedIndex == 1);
else if (selectedIndex == 2);
h = msgbox('Operation Completed');
end
Either an "end" is missing, or you have to remove the space:
elseif (selectedIndex == 2);
% not: else if (selectedIndex == 2);
For: "How to call the push button operation here ??" Simply by calling the pushbutton callback:
pushbutton_Callback(hObject, eventdata, handles)
It is not used here, but adjusting the data might be better:
pushbutton_Callback(handles.pushbutton1, eventdata, handles)
or how your button is called in the struct. Use the debugger to determine this.

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by