QTimer - Timer signals and single-shot timers
#include <qtimer.h>
Inherits QObject.
Public Members
QTimer ( QObject * parent=0, const char * name=0 )
~QTimer ()
bool isActive () const
int start ( int msec, bool sshot = FALSE )
void changeInterval ( int msec )
void stop ()
Signals
void timeout ()
Static Public Members
void singleShot ( int msec, QObject * receiver, const char
* member )
DESCRIPTION
The QTimer class provides timer signals and single-shot
timers.
It uses timer events internally to provide a more
versatile timer. QTimer is very easy to use, create a
QTimer, call start() to start it and connect its timeout()
to the appropriate slots, then when the time is up it will
emit timeout().
Note that a QTimer object is destroyed automatically when
its parent object is destroyed.
Example:
QTimer *timer = new QTimer( myObject );
connect( timer, SIGNAL(timeout()),
myObject, SLOT(timerDone()) );
timer->start( 2000, TRUE ); // 2 seconds single-shot
As a special case, a QTimer with timeout 0 times out as
soon as all the events in the window system's event queue
have been processed.
This can be used to do heavy work while providing a snappy
user interface:
QTimer *t = new QTimer( myObject );
connect( t, SIGNAL(timeout()), SLOT(processOneThing()) );
t->start( 0, FALSE );
should return quickly (typically after processing one data
item) so that Qt can deliver events to widgets, and stop
the timer as soon as it has done all its work. This is the
traditional way of implementing heavy work in GUI
applications; multi-threading is now becoming available on
more and more platforms and we expect that null events
will eventually be replaced by threading.
Note that QTimer's accuracy depends on the underlying
operating system and hardware. Most platforms support an
accuracy of 20ms; some provide more. If Qt is unable to
deliver the requested number of timer clicks, it will
silently discard some.
An alternative to using QTimer is to call
QObject::startTimer() for your object and reimplement the
QObject::timerEvent() event handler in your class (which
must of course inherit QObject). The disadvantage is that
timerEvent() does not support such high-level features as
single-shot timers or signals.
Examples: forever/forever.cpp
MEMBER FUNCTION DOCUMENTATION
QTimer::QTimer ( QObject * parent=0, const char * name=0 )
Constructs a timer with a parent and a name.
Notice that the destructor of the parent object will
destroy this timer object.
QTimer::~QTimer ()
Destructs the timer.
void QTimer::changeInterval ( int msec )
Changes the timeout interval to msec milliseconds.
If the timer signal is pending, it will be stopped and
restarted, otherwise it will be started.
See also start() and isActive().
bool QTimer::event ( QEvent * e ) [virtual protected]
Reimplemented for internal reasons; the API is not
affected.
Reimplemented from QObject.
bool QTimer::isActive () const
Returns TRUE if the timer is running (pending), or FALSE
is the timer is idle.
void QTimer::singleShot ( int msec, QObject * receiver, const
char * member ) [static]
interval.
It is very convenient to use this function because you do
not need to bother with a timerEvent or to create a local
QTimer object.
Example:
#include <qapplication.h>
#include <qtimer.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QTimer::singleShot( 10*60*1000, &a, SLOT(quit()) );
... // create and show your widgets
return a.exec();
}
This sample program automatically terminates after 10
minutes (i.e. 600000 milliseconds).
int QTimer::start ( int msec, bool sshot = FALSE )
Starts the timer with a msecs milliseconds timeout.
If sshot is TRUE, the timer will be activated only once,
otherwise it will continue until it is stopped.
Any pending timer will be stopped.
See also stop(), changeInterval() and isActive().
Examples: forever/forever.cpp
void QTimer::stop ()
Stops the timer.
See also start().
void QTimer::timeout () [signal]
This signal is emitted when the timer is activated.
SEE ALSO
http://doc.trolltech.com/qtimer.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2001 Trolltech AS,
http://www.trolltech.com. See the license file included
in the distribution for a complete license statement.
AUTHOR
Generated automatically from the source code.
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports
make our job much simpler. Thank you.
In case of content or formattting problems with this
manual page, please report them to qt-bugs@trolltech.com.
Please include the name of the manual page (qtimer.3qt)
and the Qt version (2.3.1).
Man(1) output converted with
man2html