2016-05-15 3 views
0

Wie würde ich die Farbe einer GUI-Komponente, insbesondere einer statischen Textbox, nach einer bestimmten Zeit (zB 3 Sekunden) mit einem Timer ändern?MATLAB: Bearbeiten der Farbe der GUI-Komponente mit Timer?

versuchte ich

t = timer('TimerFcn', set(handles.tag,'BackgroundColor','red'),'StartDelay',3); 
start(t); 

Aber es gibt diesen Fehler zurück:

One or more outputs not assigned to set during callback.

Ich weiß schon, bedeutet dies, dass Satz ist ein Eingabeargument für den Timer fcn nicht geben. Das Problem ist, dass eine 7-Segment-Anzeige, die diese Technik verwendet, bereits zuvor entwickelt wurde. Aber das funktioniert jetzt nicht.

Antwort

1

'TimerFcn' Parameter sollte einen Rückruf definieren - it has to be in one of the following forms:

String, function handle, or cell array defining the timer callback function

Sie Ihren Rückruf als Funktion Griff angeben sollte, die Annahme von [mindestens] zwei Argumente (Timer-Objekt/Ereignis):

If you specify this property using a function handle, when MATLAB executes the callback it passes the timer object and an event structure to the callback function.

Sie können die anonyme Funktion dafür verwenden und einfach beide Argumente ignorieren:

handles.tag = uicontrol('Style', 'text', 'String', 'Some text'); 
t = timer('TimerFcn', @(~,~) set(handles.tag,'BackgroundColor','red'), 'StartDelay',3); 
start(t); 
Verwandte Themen