How to have a function constantly execute in a Matlab Guide GUI?
조회 수: 9 (최근 30일)
이전 댓글 표시
I am trying to create the following GUI:
Monitor a textbox. If the input of the textbox changes, change the background color of another textbox for half a second, and then revert it back.
The way I thought about doing this is having a function that is constantly executing, checking in a while loop if the input of the textbox has changed. If it has changed, change the color of the textbox and wait half a second. Then change it back.
The problem is that I am not sure how to have a function that is always executing. All of the button functions and other things in the matlab gui guide only execute when they are pushed or pressed.
댓글 수: 0
답변 (1개)
Randy Acheson
2017년 2월 10일
편집: Randy Acheson
2017년 2월 10일
You can have a callback called regularly during the duration of a program by using the 'timer' object. Create a timer in the OpeningFcn of your GUIDE application, and assign it the callback you wish to call repeatedly. Here is an example:
function TestGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled (see VARARGIN)
% Choose default command line output for untitled
handles.output = hObject;
t = timer();
t.Period = 2;
t.ExecutionMode = 'fixedRate';
t.TimerFcn = @TimerFcn; % Here is where you assign the callback function
handles.timer = t; % Put the timer object inside handles so that you can stop it later
start
(t)
% Update handles structure
guidata(hObject, handles);
Then, when you want to stop the timer, you can do so in any callback in your application with this line:
stop(handles.timer)
For an alternative approach, see this MATLAB Answers post:
댓글 수: 1
Konvictus177
2022년 11월 3일
편집: Konvictus177
2022년 11월 10일
Does this slow down the app? Does calling the function repeatedly with the timer object slow down other processes running in the app?
참고 항목
카테고리
Help Center 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!