QBasicTimer Class
QBasicTimer 类为对象提供了计时器事件。更多内容...
| 头文件: | #include <QBasicTimer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 所有成员的列表,包括继承的成员
- 已弃用的成员
- QBasicTimer 属于事件类。
公共类型
公共函数
| QBasicTimer() | |
| QBasicTimer(QBasicTimer &&other) | |
| ~QBasicTimer() | |
(since 6.8) Qt::TimerId | id() const |
| bool | isActive() const |
(since 6.5) void | start(QBasicTimer::Duration duration, QObject *object) |
(since 6.5) void | start(QBasicTimer::Duration duration, Qt::TimerType timerType, QObject *obj) |
| void | stop() |
| void | swap(QBasicTimer &other) |
| QBasicTimer & | operator=(QBasicTimer &&other) |
相关的非成员
| void | swap(QBasicTimer &lhs, QBasicTimer &rhs) |
详细说明
这是一个快速、轻量且低级别的类,由 Qt 内部使用。如果您希望在应用程序中使用定时器,我们建议使用更高层次的QTimer 类,而不是本类。请注意,此定时器是一个循环定时器,除非调用stop() 函数,否则它将持续发送后续的定时器事件。
要使用该类,请创建一个 QBasicTimer 对象,并向其start() 函数传入超时间隔以及指向QObject 子类的指针。当计时器超时后,它会向QObject 子类发送一个计时器事件。 可随时使用stop()停止计时器。isActive()对于正在运行的计时器(即已启动、未达到超时时间且未被停止)返回true 。可通过timerId()获取计时器的ID。
该类的对象无法被复制,但可以被移动,因此您可以通过将其保存在支持“仅移动”类型的容器(例如 std::vector)中,来维护一个基本定时器的列表。
另请参阅 QTimer 、QChronoTimer 、QTimerEvent 、QObject::timerEvent()、定时器以及仿射变换。
成员类型文档
[alias] QBasicTimer::Duration
一种std::chrono::duration 类型,用于本类中的各种API。该类型的存在是为了便于将来向更高或更低粒度进行转换。
在所有当前平台上,其类型均为 `nanoseconds`。
成员函数文档
[constexpr noexcept] QBasicTimer::QBasicTimer()
创建一个基本计时器。
另请参阅 start()。
[noexcept] QBasicTimer::QBasicTimer(QBasicTimer &&other)
从other 中通过Move构造一个基本计时器,该计时器位于inactive 中。
[noexcept] QBasicTimer::~QBasicTimer()
销毁基本计时器。
[noexcept, since 6.8] Qt::TimerId QBasicTimer::id() const
返回定时器的 ID。
该函数在 Qt 6.8 中引入。
另请参阅 QTimerEvent::id()。
[noexcept] bool QBasicTimer::isActive() const
如果定时器正在运行且尚未停止,则返回true ;否则返回false 。
[since 6.5] void QBasicTimer::start(QBasicTimer::Duration duration, QObject *object)
启动(或重启)定时器,并设置duration 超时。该定时器将是一个Qt::CoarseTimer 。有关不同定时器类型的详细信息,请参阅Qt::TimerType 。
指定的object 将接收定时器事件。
从 Qt 6.10 开始,设置负间隔将导致运行时警告,且该值将被重置为 1 毫秒。 在 Qt 6.10 之前,虽然 Qt Timer 允许设置负间隔,但行为可能出人意料(例如,如果计时器正在运行则会停止,或者根本不会启动)。
注意: 从 Qt 6.9开始, 此方法接受 std::chrono::nanoseconds 类型参数,在此之前则接受 std::chrono::milliseconds 类型参数。此更改向后兼容。
该函数于 Qt 6.5 中引入。
另请参阅 stop()、isActive()、QObject::timerEvent() 以及Qt::CoarseTimer 。
[since 6.5] void QBasicTimer::start(QBasicTimer::Duration duration, Qt::TimerType timerType, QObject *obj)
启动(或重启)定时器,其超时时间为duration ,并采用给定的timerType 。有关不同定时器类型的详细信息,请参阅Qt::TimerType 。
从 Qt 6.10 开始,设置负间隔会引发运行时警告,且该值将被重置为 1 毫秒。 在 Qt 6.10 之前,虽然 Qt Timer 允许设置负间隔,但其行为可能出人意料(例如,如果计时器正在运行则停止,或者根本不启动)。
obj 将接收定时器事件。
注意: 从 Qt 6.9开始, 此方法接受 std::chrono::nanoseconds 类型,在此之前它接受 std::chrono::milliseconds 类型。此更改向后兼容。
这是一个重载函数。
该函数在 Qt 6.5 中引入。
另请参阅 stop()、isActive()、QObject::timerEvent() 和Qt::TimerType 。
void QBasicTimer::stop()
停止计时器。
[noexcept] void QBasicTimer::swap(QBasicTimer &other)
将此计时器与other 互换。此操作速度极快,且绝不会失败。
[noexcept] QBasicTimer &QBasicTimer::operator=(QBasicTimer &&other)
将other 分配给此基本定时器。此前由该基本定时器表示的定时器已被停止。other 仍保留为inactive 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.