Qt框架之QTimer类

QTimer 是 Qt 框架中的一个类,它提供了重复或单次的时间间隔触发。以下是 QTimer 的一些常用成员函数及其简要介绍:

构造函数和析构函数

  • QTimer(QObject *parent = nullptr): 构造一个计时器对象,可以指定一个父对象。
  • ~QTimer(): 析构函数,当计时器对象被销毁时调用。

计时器控制

  • void start(int interval = 0): 启动计时器。如果计时器已经运行,则重新启动它。可以指定时间间隔(以毫秒为单位),如果为0,则使用之前设置的时间间隔。
  • void stop(): 停止计时器。
  • void setInterval(int interval): 设置计时器的时间间隔(以毫秒为单位)。
  • int interval() const: 返回当前设置的时间间隔。
  • bool isActive() const: 如果计时器正在运行,则返回 true;否则返回 false

单次计时器

  • void setSingleShot(bool singleShot): 如果 singleShottrue,则计时器只会在指定的间隔后触发一次;否则,它将重复触发。
  • bool isSingleShot() const: 如果计时器设置为单次触发,则返回 true

计时器信号

  • void timeout(): 当计时器的时间间隔到达时,这个信号被发射。

其他功能

  • void setTimerType(Qt::TimerType timerType): 设置计时器的类型(例如,Qt::PreciseTimerQt::CoarseTimer)。
  • Qt::TimerType timerType() const: 返回计时器的类型。
    以下是如何使用这些函数的一个简单示例:
#include <QCoreApplication>
#include <QTimer>
int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    QTimer timer;
    // 设置时间间隔为2000毫秒(2秒)
    timer.setInterval(2000);
    // 设置为单次触发
    timer.setSingleShot(true);
    // 连接timeout信号到一个槽函数
    QObject::connect(&timer, &QTimer::timeout, [&]() {
        qDebug() << "Timer triggered!";
        // 停止计时器
        timer.stop();
    });
    // 启动计时器
    timer.start();
    return a.exec();
}

在这个例子中,我们创建了一个 QTimer 对象,设置了2秒的时间间隔,并设置为单次触发。然后,我们连接了 timeout 信号到一个 lambda 函数,该函数将在计时器触发时打印一条消息并停止计时器。最后,我们启动了计时器并进入应用程序的事件循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值