QT中定时器QTimer和timerEvent的区别


QT中定时器的使用方法

(1)重载timerEvent(QTimerEvent *)函数

        startTimer(50);//单位为毫秒,设置时间间隔


        头文件中声明:

        void timerEvent(QTimerEvent * event);


        cpp文件中实现:

        void MainWindow::timerEvent(QTimerEvent * event)

        {

        if(...)

        {

        ...

        }

        else if(...)

        {

        ...

        }

        }


        在需要开启定时器的时候进行开启,并将返回值复给一个整形变量:

        int t_num = startTimer(50);


        需要关闭的时候:

        killTimer(t_num);

        注意:timerEvent定时执行的内容只有一个,如果我们执行不同的定时器,需要在timerEvent函数内部进行判断操作。而QTimer想执行几个不同的操作,只需要绑定不同的槽函数即可,比较清晰。


(2)QTimer定时器,在类的构造函数中设定如下:

        头文件中声明槽函数:

        private slots:

        void slot_timeout();


        cpp文件中实现:

        QTimer *timer=new QTimer(this);

        connect(timer,SIGNAL(timeout()),this,SLOT(slot_timeout()));//slot_timeout()为自定义槽


        槽函数:

        void MainWindow::slot_timeout()

        {

                ...

        }


        开启定时器:

        timer->start(1000);


        关闭定时器:

        timer->stop();


        删除定时器:

        delete timer;


        大家在项目中使用定时器,还是根据项目的具体情况而定吧。


上一篇