qt 定周期执行一个函数

在 Qt 中,如果你想以固定的周期执行一个函数,可以使用 QTimer 类。QTimer 允许你设置定时器,当定时器超时时,会发出一个信号,你可以连接这个信号到你想要定期执行的函数。

以下是一个简单的例子,展示如何使用 QTimer 定期执行一个函数:

  1. 创建一个 Qt 项目(如果你还没有的话)。
  2. 在你的头文件中包含必要的头文件,并声明一个槽函数以及一个定时器。
  3. 在你的源文件中设置定时器的间隔并连接定时器的信号到槽函数。

头文件 (e.g., mainwindow.h)


#ifndef MAINWINDOW_H  
#define MAINWINDOW_H  
  
#include <QMainWindow>  
#include <QTimer>  
  
QT_BEGIN_NAMESPACE  
namespace Ui { class MainWindow; }  
QT_END_NAMESPACE  
  
class MainWindow : public QMainWindow  
{  
    Q_OBJECT  
  
public:  
    MainWindow(QWidget *parent = nullptr);  
    ~MainWindow();  
  
private slots:  
    void onTimer();  
  
private:  
    Ui::MainWindow *ui;  
    QTimer *timer;  
};  
  
#endif // MAINWINDOW_H

源文件 (e.g., mainwindow.cpp)


#include "mainwindow.h"  
#include "ui_mainwindow.h"  
#include <QDebug>  
  
MainWindow::MainWindow(QWidget *parent)  
    : QMainWindow(parent)  
    , ui(new Ui::MainWindow)  
{  
    ui->setupUi(this);  
  
    // 创建定时器  
    timer = new QTimer(this);  
  
    // 设置定时器的间隔(例如,1000毫秒 = 1秒)  
    timer->setInterval(1000);  
  
    // 连接定时器的 timeout 信号到槽函数  
    connect(timer, &QTimer::timeout, this, &MainWindow::onTimer);  
  
    // 启动定时器  
    timer->start();  
}  
  
MainWindow::~MainWindow()  
{  
    delete ui;  
}  
  
// 槽函数  
void MainWindow::onTimer()  
{  
    qDebug() << "Timer triggered!";  
    // 在这里执行你想定期执行的代码  
}

在这个例子中,onTimer 函数会每隔 1 秒(1000 毫秒)被调用一次,并输出 "Timer triggered!"。

解释

  1. 创建定时器

    timer = new QTimer(this);
  2. 设置定时器间隔

    timer->setInterval(1000); // 1000 毫秒 = 1 秒
  3. 连接信号到槽

    connect(timer, &QTimer::timeout, this, &MainWindow::onTimer);
  4. 启动定时器

    timer->start();
  5. 槽函数

    
    
    void MainWindow::onTimer()  
    {  
        qDebug() << "Timer triggered!";  
        // 定期执行的代码  
    }

这样,你就可以在 Qt 中定期执行一个函数了。如果你需要在不同的时间间隔内执行不同的任务,可以创建多个 QTimer 实例,并分别连接它们各自的信号到不同的槽函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值