zoukankan      html  css  js  c++  java
  • 10.QT-定时器

    QObject定时器

    • 需要头文件#include <QTimerEvent>

     需要函数

    int QObject::startTimer(int interval);
    //启动定时器,并设置定时器间隔时间(单位ms),启动后返回该定时器ID号.
    
    void QObject::timerEvent(QTimerEvent * event);
    //定时器处理函数,需要用户来重写它,如果有多个定时器,可以通过QTimerEvent::timerId()来判断定时器ID处理
    
    void killTimer(int id);
    //通过定时器ID号来杀掉某个定时器


    示例代码

    Widget.h:

    #ifndef WIDGET_H
    #define WIDGET_H
    #include <QWidget>
    #include <QObject>
    
    class Widget : public QWidget
    {
        Q_OBJECT
    
    private:
    virtual void  timerEvent( QTimerEvent * event );
    
    public:
        explicit Widget(QWidget *parent = 0);
    };
    
    #endif // WIDGET_H

    Widget.cpp:

    #include "Widget.h"
    #include <QDebug>
    #include <QTimerEvent>
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent)
    {
         int TimerID = startTimer(1000);        //设置1000ms为单位
         qDebug()<<"startTimerID : "<<TimerID;
    }
    
    void Widget::timerEvent(QTimerEvent * event )
    {
        qDebug()<<"TimerID : "<<event->timerId();
    }

    QTimer定时器

     需要头文件#include <QTimer>  

    QTimer类定时器支持单次触发和多次触发。

    使用QTimer类定时器的步骤:

    1. 创建一个QTimer定时器(示例)

    QTimer *timer = new QTimer(this);

    2. 连接timeout()信号与槽函数(示例)

     connect(timer, SIGNAL(timeout()), this, SLOT(time_handler()));

    3.启动定时器,并设置间隔时间

    timer->start (int msec);               //单位ms

    4.停止定时器

    timer->stop();

    5.删除定时器

    delete timer;

    常用函数

    void   setSingleShot(bool singleShot);
    // 设置使能单次触发和多次触发,默认情况为多次触发
    
    bool   isActive();
    //判断定时器是否运行
    
    bool  setInterval ( int msec );
    //从新设置间隔时间


    示例代码

    Widget.h:

    #ifndef WIDGET_H
    #define WIDGET_H
    #include <QWidget>
    #include <QObject>
    
    class Widget : public QWidget
    {
        Q_OBJECT
    
        QTimer *timer;
    
    private slots:
         void  time_handler();
    
    public:
        explicit Widget(QWidget *parent = 0);
    };
    
    #endif // WIDGET_H

    Widget.cpp:

    #include "Widget.h"
    #include <QDebug>
    #include <QTimer>
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent)
    {
         QTimer *timer = new QTimer(this);
         connect(timer, SIGNAL(timeout()), this, SLOT(time_handler()));
         timer->start(1000);        //1000ms
    }
    
    void Widget::time_handler()
    {
        qDebug()<<"Timer out";
    
    }
  • 相关阅读:
    开启、关闭ubuntu防火墙
    python str byte 互转
    Java 获取系统cpu 内存
    Nginx 针对上游服务器缓存
    Nginx 返回响应过滤响应内容
    Nginx 如何处理上游响应的数据
    Linux 用户和用户组管理
    Linux 文件与目录管理
    Linux 文件与目录管理
    Linux 文件基本属性
  • 原文地址:https://www.cnblogs.com/lifexy/p/8950880.html
Copyright © 2011-2022 走看看