Qt QTimer

The QTimer class provides repetitive and single-shot timers.

QTimer类提供了重复计时器和一次性计时器。

下面这个例子是重复计时器

    QTimer* pTimer = new QTimer(this);
    connect(pTimer,&pTimer->timeout,[](){
        qDebug()<<"time response";
    });
    pTimer->start(5000);

下面这个例子是单次计时器

    QTimer* pTimer = new QTimer(this);
    connect(pTimer,&pTimer->timeout,[](){
        qDebug()<<"time response";
    });
    pTimer->setSingleShot(true);
    pTimer->start(5000);

也可以使用下列方式,单次执行

    QTimer::singleShot(2000,[](){
        qDebug()<<"time singleShot";
    });

As a special case, a QTimer with a timeout of 0 will time 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:

作为一种特殊情况,只要处理了窗口系统事件队列中的所有事件,超时为0的QTimer就会超时。 这可以用来做繁重的工作,同时提供一个快速的用户界面,不过最好使用QThreads:

       QTimer *timer = new QTimer(this);
      connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing()));
      timer->start();

结束定时器:调用stop()函数

猜你喜欢

转载自blog.csdn.net/qq_24127015/article/details/84142943