QTimer类提供了定时器信号和单触发定时器。
它在内部使用定时器事件来提供更通用的定时器。QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。
注意当QTimer的父对象被销毁时,它也会被自动销毁。
实例:
QTimer *timer = new QTimer( myObject ); connect( timer, SIGNAL(timeout()), myObject, SLOT(timerDone()) ); timer->start( 2000, TRUE ); // 2秒单触发定时器
你也可以使用静态的singleShot()函数来创建单触发定时器。
作为一个特殊情况,一旦窗口系统事件队列中的所有事件都已经被处理完,一个定时为0的QTimer就会到时间了。
这也可以用来当提供迅速的用户界面时来做比较繁重的工作。
QTimer *t = new QTimer( myObject ); connect( t, SIGNAL(timeout()), SLOT(processOneThing()) ); t->start( 0, FALSE );
void QTimer::timeout () [信号]
当定时器被激活时,这个信号被发射。
void QTimer::stop ()
停止这个定时器。
QTimer::start ( int msec, bool sshot = FALSE )
开始一个 msec毫秒定时的定时器。
如果sshot为真,这个定时器将只会被激活一次,否则它将会持续到它被停止。
任何正在运行的定时器将被停止。
void QTimer::singleShot ( int msec, QObject * receiver, const char * member ) [静态]
这个静态函数在一个给定时间间隔之后调用一个槽。
使用这个函数是非常方便的,因为你不需要被timerEvent或创建一个本地QTimer对象所困扰。
bool QTimer::isActive () const
如果定时器正在运行,返回真,否则返回假。
QTimer::QTimer ( QObject * parent = 0, const char * name = 0 )
构造一个被称作
name,父对象为
parent的定时器。
注意这个父对象的析构函数将会销毁这个定时器对象。
QTimer::~QTimer ()
销毁这个定时器。
void QTimer::changeInterval ( int msec )
改变定时间隔为
msec毫秒。
如果这个定时器信号是运行的,它将会被停止并且重新开始,否则它将会被开始。
QTimer类的使用:创建一个QTimer的对象,使用start()来开始并且把它的timeout()信号连接到适当的槽,当这段时间过去了,它将会发射timeout()信号,与这个信号相连的槽就开始执行。当QTimer的父对象被销毁时,它也会被销毁。
QTimer *timer = new QTimer(this);
timer->start(1000);
startTimer()函数的作用是使定时器开始,并且返回一个定时器标识符,或者如果不能开始计时,返回0。当定时器事件发生时,虚函数timeEvent(QTimeEvent*)被调用为QTimerEvent时间参数类。重新实现这个函数可以获得定时器事件。