QTimer类的使用

 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 ()

停止这个定时器。
int 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);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);

startTimer()函数的作用是使定时器开始,并且返回一个定时器标识符,或者如果不能开始计时,返回0。当定时器事件发生时,虚函数timeEvent(QTimeEvent*)被调用为QTimerEvent时间参数类。重新实现这个函数可以获得定时器事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值