How can I fix my uicontrol script?

조회 수: 3 (최근 30일)
Travis Ohlsen
Travis Ohlsen 2018년 4월 9일
댓글: Walter Roberson 2018년 4월 12일
I am currently creating a program for a class project and am having trouble using the uicontrol. For this part of the project, I am using while loops to change between scripts based on what value is assigned to the variable exe. I first set exe=1 and then run the while loop; while exe==1. Inside the while loop, I want the script to create a figure with a push button. What I want is for the script to wait for the button to be pressed, and then once it is pressed, I want the window to close, and to set exe=2 so that the next part of the script will run.
Here is what I have for a script. The while loops work, but the script doesn't like the callback.
exe=1;
while exe==1
main_menu=uicontrol('Style','pushbutton','Position',[20 20 20 20],'String','Pong','Callback',@exe1);
while get(handles.main_menu,'Value')==1
close
exe=2;
end
end
function exe1
get(handles.main_menu,'Value');
end
The result is the figure popping up with the push button along with the error;
Undefined variable "handles" or class "handles.main_menu".
When I push the button is returns another error;
Undefined function 'exe1' for input arguments of type 'matlab.ui.control.UIControl'.
Error while evaluating UIControl Callback.

채택된 답변

Prajit T R
Prajit T R 2018년 4월 12일
Hi Travis
The following code should do the trick.
global exe;
exe=1;
main_menu=uicontrol('Style','pushbutton','Position',[60 60 60 60],'String','Pong','Callback',@pushbutton_callback);
function pushbutton_callback(src,event)
global exe;
exe=exe+1;
close;
end
Cheers
  댓글 수: 3
Travis Ohlsen
Travis Ohlsen 2018년 4월 12일
Never Mind, I just added a break after the uicontrol and it fixed the problem. Thank you for your help.
Walter Roberson
Walter Roberson 2018년 4월 12일
The code
while exe==1
main_menu=uicontrol('Style','togglebutton','Position',[20 20 100 100],'String','Pong','Callback',@setexe2);
end
means to loop indefinitely, and each iteration create a new uicontrol. The loop does not give any time for the graphics to be updated, and it adds all of the uicontrols onto the same position.

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

추가 답변 (0개)

카테고리

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