C

定时器类

class Qul::Timer

提供运行重复和单次定时器的方式。更多信息...

头文件 #include <qul/timer.h>
Qt Quick Ultralite 1.0

公共函数

Timer(int interval = 0)
virtual~Timer() override
intinterval() const
boolisActive() const
boolisSingleShot() const
voidonTimeout(const FuncArg &f)
voidsetInterval(int msec)
voidsetSingleShot(bool singleShot)
voidstart()
voidstart(int msec)
voidstop()

详细描述

C++11 lambda 的示例

Qul::Timer timer;
timer.onTimeout([]() { printf("triggered\n"); });
timer.start(1000); // will trigger every second

functor 的示例

struct Functor {
    void operator()() { printf("triggered\n"); }
};

Qul::Timer timer;
timer.onTimeout(Functor());
timer.setSingleShot(true);
timer.start(60000); // trigger once in a minute

QML 对象中的示例

struct MinuteCounter : Qul::Object
{
    Qul::Property<int> minutes;

    void start() {
        _countMinutes.onTimeout([this]() { minutes.set(minutes.get() + 1); });
        _countMinutes.start(60000);
    }
private:
    Qul::Timer _countMinutes;
};

成员函数文档

Timer::Timer(int interval = 0)

创建一个新的定时器。

可以指定 interval(默认:0)。定时器的默认行为是重复。使用 setSingleShot(true) 使其仅触发一次。

定时器不会自动启动。使用 start() 来启动它。

[覆盖虚拟] Timer::~Timer()

自动停止定时器

int Timer::interval() const

返回间隔

另请参阅setInterval.

bool Timer::isActive() const

如果定时器正在运行(挂起),则返回 true;否则返回 false

bool Timer::isSingleShot() const

对于单次定时器返回 True,否则返回 False

另请参阅setSingleShot.

模板 <typename FuncArg> void Timer::onTimeout(const FuncArg &f)

设置一个可调用对象作为回调。

参数f必须是一个可调用对象,例如lambda或std::function,或者任何具有operator()运算符的结构。

每次定时器触发时都会调用。

多次调用此函数时,只有最后一个回调保持激活。

另请参阅startsetSingleShot

void Timer::setInterval(int msec)

将超时间隔设置为毫秒为msec

设置活动定时器的间隔不会更改下一个事件。

另请参阅interval

void Timer::setSingleShot(bool singleShot)

设置定时器是否是singleShot定时器。

单次定时器只会触发一次,非单次定时器每interval毫秒触发一次。

默认值是False

另请参阅isSingleShot

void Timer::start()

启动或重启定时器

如果定时器已经在运行,它将停止并重新启动。

如果singleShot为true,定时器将只激活一次。

另请参阅stop

void Timer::start(int msec)

使用毫秒为msec的超时间隔启动或重启定时器

如果定时器已经在运行,它将停止并重新启动。

如果singleShot为true,定时器将只激活一次。

另请参阅stop

void Timer::stop()

停止定时器。

另请参阅start

在某些Qt许可证下可用。
了解更多信息。