필터 지우기
필터 지우기

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

조회 수: 3 (최근 30일)
anush
anush 2017년 5월 15일
편집: Jan 2017년 5월 18일
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