Change Background colour between values

Hello everyone.
I'm building a script that follows the angle of a IMU (Inertial Measurement Unit) in real time.
In this script im using a GUI, which shows the angle in numbers on a big "edit text" field with a white background.
(gui looks like this):
I want this background to change to a green color when the value of the angle is between 14.1 and 14.9 and between 19.6 and 20.4.
if the value is outside the given values the background should have a red color.
right now, this is what my script looks like:
function pitchTB_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
Data = handles.pitchTB;
if Data(Data > 12.1 && Data < 12.9)
set(hObject,'BackgroundColor','green')
elseif Data(Data > 19.6 && Data < 20.4)
set(hObject,'BackgroundColor','green')
else
set(hObject,'BackgroundColor','red')
end
The code doesnt give me any errors, but it wont change the color of the background.
Does anyone know what im doing wrong?

 采纳的回答

Found the problem. i was working in the create function, which means the script doesnt get updated while running the GUI.
i put it underneath the timer function, which led to the script working:
if (eulP < -12.1 && eulP > -12.9) || (eulP < -19.6 && eulP > -20.4)
set(handles.pitchTB,'BackgroundColor','green');
elseif eulP > -0.10 && eulP < 0.10
set(handles.pitchTB,'BackgroundColor','white');
else
set(handles.pitchTB,'BackgroundColor','red');
end

更多回答(1 个)

See attached demo that shows you how to change just about everything on your figure.

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

产品

版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by