QT定时器的几种用法

一、自定义定时器:

 定义一个定时器对象,绑定自定义槽函数。也可以定义定时器对象指针,这样可以一次性让多个定时器绑定同一个槽函数。

头文件中加入:

QTimer myTimer;

void myTimerEvent();//自定义定时处理槽函数

在需要启动的地方:

myTimer.setInterval(1000);//设置定时器间隔时间,1000毫秒,也可以不写,在start(1000)
connect(&myTimer,&QTimer::timeout,this,&MainWindow::myTimerEvent);
myTimer.start();

二、一次性溢出定时器

QTimer中的静态方法:

static void singleShot(int msec, const QObject *receiver, const char *member);
static void singleShot(int msec, Qt::TimerType timerType, const QObject *receiver, const char *member);

msec:时间间隔

timerType:定时器精确度 :

Qt::PreciseTimer(精确的定时器,尽量保持毫秒精度,试图保持精确度在1毫秒);
Qt::CoarseTimer(粗略的定时器,尽量保持精度在所需的时间间隔5%范围内);
Qt::VeryCoarseTimer(很粗略的定时器,只保留完整的第二精度,大约为500毫秒);

receiver:定时器接收者

member:接收者处理函数

如:

QApplication a(argc, argv);
         QTimer::singleShot(50000,&a,SLOT(quit()));//表示五分钟后停止程序
             ....
            return a.exec();

三、定时器ID

定义一个int 类型的变量timerID

在启动的地方:

        timerID = startTimer(1000);

重载定时器处理函数

void timerEvent(QTimerEvent *event);

void MainWindow::timerEvent(QTimerEvent *event)
{
    if(event->timerId() == timerID)
    {
               //自定义处理动作
    }
}

关闭的函数:killTimer(timerID)

参考文献:https://blog.csdn.net/kangkanglhb88008/article/details/127849859

        

你可能感兴趣的:(qt,开发语言)