C
定时器类
class Qul::Timer提供运行重复和单次定时器的方式。更多信息...
头文件 | #include <qul/timer.h> |
自 | Qt Quick Ultralite 1.0 |
公共函数
Timer(int interval = 0) | |
virtual | ~Timer() override |
int | interval() const |
bool | isActive() const |
bool | isSingleShot() const |
void | onTimeout(const FuncArg &f) |
void | setInterval(int msec) |
void | setSingleShot(bool singleShot) |
void | start() |
void | start(int msec) |
void | stop() |
详细描述
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()运算符的结构。
每次定时器触发时都会调用。
多次调用此函数时,只有最后一个回调保持激活。
另请参阅start 和 setSingleShot。
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许可证下可用。
了解更多信息。