本页内容

QDeadlineTimer Class

QDeadlineTimer 类用于标记未来的一个截止时间。更多内容...

头文件: #include <QDeadlineTimer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注意:该类中的所有函数均为可重入的。

QDeadlineTimer 比较

类别可比较类型
strongQDeadlineTimer

公共类型

enum class ForeverConstant { Forever }

公共函数

QDeadlineTimer()
QDeadlineTimer(Qt::TimerType timerType)
QDeadlineTimer(QDeadlineTimer::ForeverConstant, Qt::TimerType timerType = Qt::CoarseTimer)
QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer)
QDeadlineTimer(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)
QDeadlineTimer(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)
qint64 deadline() const
qint64 deadlineNSecs() const
bool hasExpired() const
bool isForever() const
qint64 remainingTime() const
std::chrono::nanoseconds remainingTimeAsDuration() const
qint64 remainingTimeNSecs() const
void setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)
void setDeadline(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)
void setPreciseDeadline(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)
void setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)
void setRemainingTime(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)
void setRemainingTime(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)
void setTimerType(Qt::TimerType timerType)
void swap(QDeadlineTimer &other)
Qt::TimerType timerType() const
QDeadlineTimer &operator+=(qint64 msecs)
QDeadlineTimer &operator-=(qint64 msecs)
QDeadlineTimer &operator=(std::chrono::duration<Rep, Period> remaining)
QDeadlineTimer &operator=(std::chrono::time_point<Clock, Duration> deadline_)

静态公共成员

QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs)
QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer)
bool operator!=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs)
QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt)
QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs)
bool operator<(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
bool operator<=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
bool operator==(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
bool operator>(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
bool operator>=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

详细说明

QDeadlineTimer 类通常用于计算未来的截止时间,并验证截止时间是否已过期。QDeadlineTimer 也可用于没有过期时间的截止时间(“永久”)。它与QElapsedTimer 互为对应,后者用于计算自调用QElapsedTimer::start() 以来已过去的时间。

与QElapsedTimer::hasExpired() 相比,QDeadlineTimer 提供了更便捷的 API。

该类的典型用例是在相关操作开始之前创建一个 QDeadlineTimer,然后使用remainingTime() 或hasExpired() 来确定是否应继续尝试该操作。QDeadlineTimer 对象可以传递给执行该操作的被调用函数,以便它们知道还应运行多长时间。

    void executeOperation(int msecs)
    {
        QDeadlineTimer deadline(msecs);
        do {
            if (readFromDevice(deadline.remainingTime()))
                break;
            waitForReadyRead(deadline);
        } while (!deadline.hasExpired());
    }

许多 QDeadlineTimer 函数涉及超时值,这些值均以毫秒为单位。其中有两个特殊值,与许多其他名为waitFor 或类似名称的 Qt 函数相同:

  • 0:时间已耗尽,已过期
  • -1:剩余时间无限,计时器永不过期

参考时钟

QDeadlineTimer 将使用与QElapsedTimer 相同的时钟(参见QElapsedTimer::clockType() 和QElapsedTimer::isMonotonic())。

计时器类型

与QTimer 和QChronoTimer 一样,QDeadlineTimer 可以在不同精度的计时器级别之间进行选择。您可以通过向设置或更改计时器的函数传递Qt::PreciseTimer 来选择精确计时,或者通过传递Qt::CoarseTimer 来选择粗略计时。目前,Qt::VeryCoarseTimer 与Qt::CoarseTimer 的解释方式相同。

此功能取决于操作系统的支持情况:如果操作系统不支持粗略计时功能,则 QDeadlineTimer 的行为将等同于传入了Qt::PreciseTimer 。

QDeadlineTimer 默认使用Qt::CoarseTimer ,因为在支持粗粒度计时的操作系统上,向该时钟源发起计时调用通常效率更高。粗粒度的程度取决于操作系统,但通常在几毫秒的量级。

std::chrono 兼容性

QDeadlineTimer 与 C++11 中的 `std::chrono ` API 兼容,既可以从 `std::chrono::duration ` 和 `std::chrono::time_point ` 对象构建,也可以与它们进行比较。此外,它还与C++14 中的时间字面量完全兼容,这使得可以编写如下代码:

    using namespace std::chrono;
    using namespace std::chrono_literals;

    QDeadlineTimer deadline(30s);
    device->waitForReadyRead(deadline);
    if (deadline.remainingTimeAsDuration() > 300ms)
        cleanup();

如上例所示,QDeadlineTimer 提供了remainingTime() 和deadline() 的模板版本,可用于返回std::chrono 对象。

请注意,与 `time_point ` 的比较效率不如与 `duration` 的比较,因为 QDeadlineTimer 可能需要将其自身的内部时钟源转换为time_point 对象所使用的时钟源。另请注意,由于这种转换,截止时间将不会完全精确,因此以下代码的比较结果可能不一致:

    using namespace std::chrono;
    using namespace std::chrono_literals;
    auto now = steady_clock::now();
    QDeadlineTimer deadline(now + 1s);
    Q_ASSERT(deadline == now + 1s);

另请参阅 QTime 、QChronoTimer 、QElapsedTimer 以及Qt::TimerType 。

成员类型文档

enum class QDeadlineTimer::ForeverConstant

常数值描述
QDeadlineTimer::ForeverConstant::Forever0在创建QDeadlineTimer 时使用,用于指示截止日期不应过期

成员函数文档

[constexpr noexcept default] QDeadlineTimer::QDeadlineTimer()

[explicit constexpr noexcept] QDeadlineTimer::QDeadlineTimer(Qt::TimerType timerType)

构建一个已过期的QDeadlineTimer 对象。对于该对象,remainingTime()将返回0。如果未设置timerType ,则该对象将使用coarse 的timer type 。

计时器类型timerType 可能会被忽略,因为该计时器已过期。同样,出于优化目的,此函数不会尝试获取当前时间,而是会使用一个已知属于过去的值。 因此,deadline() 可能会返回一个意外的值,且该对象无法用于计算逾期时长。如果需要该功能,请使用QDeadlineTimer::current()。

另请参阅 hasExpired()、remainingTime()、Qt::TimerType 以及current()。

[constexpr noexcept] QDeadlineTimer::QDeadlineTimer(QDeadlineTimer::ForeverConstant, Qt::TimerType timerType = Qt::CoarseTimer)

使用 `ForeverConstant ` 创建的 `QDeadlineTimer` 对象永不过期。对于此类对象,`remainingTime()` 将返回 -1,`deadline()` 将返回最大值,而 `isForever()` 将返回 true。

由于该计时器永不过期,因此可以忽略计时器类型timerType 。

另请参阅 ForeverConstant 、hasExpired()、isForever()、remainingTime() 以及timerType()。

[explicit noexcept] QDeadlineTimer::QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer)

创建一个 QDeadlineTimer 对象,其到期时间从该对象创建之时起为msecs 毫秒(若 msecs 为正数)。若msecs 为零,则该 QDeadlineTimer 将被标记为已过期,导致remainingTime() 返回零,而deadline() 返回过去某个未确定的时间点。 如果msecs 为负值,则定时器将设置为永不过期,导致remainingTime()返回-1,而deadline()返回最大值。

QDeadlineTimer 对象将使用指定的计时器type 进行构造。

出于优化目的,如果msecs 为零,该函数可能会跳过获取当前时间,而是使用已知的过去时间值。如果发生这种情况,deadline() 可能会返回一个意外的值,且该对象无法用于计算逾期时间。如果需要此功能,请使用QDeadlineTimer::current() 并向其添加时间。

注意:在 Qt 6.6之前, 唯一会导致计时器永不过期的值是 -1。

另请参阅 hasExpired()、isForever()、remainingTime() 和setRemainingTime()。

template <typename Rep, typename Period> QDeadlineTimer::QDeadlineTimer(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)

创建一个剩余时间为remaining 的QDeadlineTimer对象。如果remaining 为零或负数,则该QDeadlineTimer对象将被标记为已过期;而如果remaining 等于duration::max() ,则该对象将被设置为永不过期。

QDeadlineTimer 对象将使用指定的定时器type 进行构造。

该构造函数可与C++14 的用户定义时间字面量配合使用,例如:

    using namespace std::chrono_literals;
    QDeadlineTimer deadline(250ms);

出于优化目的,如果remaining 为零或负数,本函数可能会跳过获取当前时间,转而使用已知的过去时间值。如果发生这种情况,deadline() 可能会返回一个意外的值,且该对象无法用于计算逾期时间。如果需要该功能,请使用QDeadlineTimer::current() 并向其添加时间。

另请参阅 hasExpired()、isForever()、remainingTime() 以及setRemainingTime()。

template <typename Clock, typename Duration = typename Clock::duration> QDeadlineTimer::QDeadlineTimer(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)

构建一个 QDeadlineTimer 对象,其截止时间设为deadline 时间点,并将时钟源Clock 转换为 Qt 的内部时钟源(参见QElapsedTimer::clockType())。

如果deadline 处于过去,则该 QDeadlineTimer 对象将被设为已过期;而如果deadline 等于Duration::max() ,则该对象将被设为永不过期。

QDeadlineTimer 对象将使用指定的计时器type 进行构造。

另请参阅 hasExpired()、isForever()、remainingTime() 以及setDeadline()。

[static noexcept] QDeadlineTimer QDeadlineTimer::addNSecs(QDeadlineTimer dt, qint64 nsecs)

返回一个QDeadlineTimer 对象,其截止时间在dt 的截止时间基础上延长了nsecs 纳秒。如果dt 被设置为永不过期,则该函数将返回一个同样永不过期的QDeadlineTimer 。

注意:如果 dt 在创建时已过期,其有效期是未定的,添加一定时间可能会使其恢复有效,也可能不会。

[static noexcept] QDeadlineTimer QDeadlineTimer::current(Qt::TimerType timerType = Qt::CoarseTimer)

返回一个已过期的QDeadlineTimer ,但保证其中包含当前时间。通过此函数创建的对象可参与计算定时器逾期时长,使用deadline()函数。

QDeadlineTimer 对象将根据指定的timerType 进行构建。

[noexcept] qint64 QDeadlineTimer::deadline() const

返回存储在QDeadlineTimer 对象中的截止时间的绝对时间点,以相对于参考时钟的毫秒为单位计算,与QElapsedTimer::msecsSinceReference() 相同。如果该QDeadlineTimer 已过期,则该值将位于过去。

如果该QDeadlineTimer 永不过期,则此函数返回std::numeric_limits<qint64>::max() 。

该函数可用于计算定时器逾期的时间长度,方法是减去QDeadlineTimer::current() 或QElapsedTimer::msecsSinceReference(),如下例所示:

    qint64 realTimeLeft = deadline.deadline();
    if (realTimeLeft != (std::numeric_limits<qint64>::max)()) {
        realTimeLeft -= QDeadlineTimer::current().deadline();
        // or:
        //QElapsedTimer timer;
        //timer.start();
        //realTimeLeft -= timer.msecsSinceReference();
    }

注意: 作为已过期状态创建的定时器, 其截止时间是过去某个未确定的时间点,因此上述计算可能无法正常工作。

另请参阅 remainingTime()、deadlineNSecs() 和setDeadline()。

[noexcept] qint64 QDeadlineTimer::deadlineNSecs() const

返回存储在QDeadlineTimer 对象中的截止时间的绝对时间点,该时间以纳秒为单位,相对于参考时钟计算,与QElapsedTimer::msecsSinceReference() 相同。如果该QDeadlineTimer 已过期,则返回值将位于过去。

如果该QDeadlineTimer 永不过期,或者距离截止时间的纳秒数超出了返回类型的范围,则该函数返回std::numeric_limits<qint64>::max() 。

该函数可用于计算定时器逾期的时间长度,方法是减去QDeadlineTimer::current(),如下例所示:

    qint64 realTimeLeft = deadline.deadlineNSecs();
    if (realTimeLeft != std::numeric_limits<qint64>::max())
        realTimeLeft -= QDeadlineTimer::current().deadlineNSecs();

注意: 作为已过期状态创建的计时器, 其截止时间是一个过去的不确定时间点,因此上述计算可能无法正常工作。

另请参阅 remainingTime()、deadline() 和setDeadline()。

[noexcept] bool QDeadlineTimer::hasExpired() const

如果该QDeadlineTimer 对象已过期,则返回true;如果还有剩余时间,则返回false。对于已过期的对象,remainingTime()将返回零,而deadline()将返回过去某个时间点。

QDeadlineTimer 使用 `ForeverConstant ` 创建的对象永不过期,对于此类对象,该函数始终返回 `false`。

另请参阅 isForever() 和remainingTime()。

[constexpr noexcept] bool QDeadlineTimer::isForever() const

如果该QDeadlineTimer 对象永不过期,则返回 true;否则返回 false。对于永不过期的定时器,remainingTime() 始终返回 -1,而deadline() 返回最大值。

另请参阅 ForeverConstant 、hasExpired() 和remainingTime()。

[noexcept] qint64 QDeadlineTimer::remainingTime() const

返回此QDeadlineTimer 对象中剩余的时间(以毫秒为单位)。如果计时器已过期,该函数将返回零,且无法通过此函数获取超时时长(如需获取,请参阅deadline())。如果计时器被设置为永不过期,该函数将返回 -1。

该函数适用于采用毫秒级超时设置的 Qt API,例如众多QIODevice waitFor 函数,以及QMutex 、QWaitCondition 、QSemaphore 或QReadWriteLock 中的定时锁定函数。例如:

    mutex.tryLock(deadline.remainingTime());

另请参阅 setRemainingTime()、remainingTimeNSecs()、isForever() 和hasExpired() 函数。

[noexcept] std::chrono::nanoseconds QDeadlineTimer::remainingTimeAsDuration() const

返回截止时间前的剩余时间。

[noexcept] qint64 QDeadlineTimer::remainingTimeNSecs() const

返回此QDeadlineTimer 对象中剩余的时间(单位为纳秒)。如果计时器已过期,该函数将返回零,且无法通过该函数获取超时的时间长度。如果计时器被设置为永不过期,该函数将返回-1。

另请参阅 remainingTime()、isForever() 和hasExpired()。

[noexcept] void QDeadlineTimer::setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)

将此QDeadlineTimer 对象的截止时间设置为msecs (以毫秒为单位,从参考时钟开始计数,与QElapsedTimer::msecsSinceReference()相同),并将计时器类型设置为timerType 。如果该时间点已过去,则此QDeadlineTimer 将被标记为已过期。

如果msecs 为std::numeric_limits<qint64>::max() ,或者截止时间超出了未来可表示的范围,则该QDeadlineTimer 将被设置为永不过期。

另请参阅 setPreciseDeadline()、deadline()、deadlineNSecs() 和setRemainingTime()。

template <typename Clock, typename Duration = typename Clock::duration> void QDeadlineTimer::setDeadline(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)

将此QDeadlineTimer 设置为由deadline 时间点标记的截止时间,并将时间源Clock 转换为Qt的内部时间源(参见QElapsedTimer::clockType())。

如果deadline 处于过去,则该QDeadlineTimer 对象将被设置为已过期;而如果deadline 等于Duration::max() ,则该对象将被设置为永不过期。

该QDeadlineTimer 对象的计时器类型将被设置为指定的type 。

另请参阅 hasExpired()、isForever() 和remainingTime()。

[noexcept] void QDeadlineTimer::setPreciseDeadline(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)

将此QDeadlineTimer 对象的截止时间设置为自参考时钟纪元起secs 秒和nsecs 纳秒(与QElapsedTimer::msecsSinceReference() 相同),并将计时器类型设置为timerType 。如果该时间点已过去,则此QDeadlineTimer 将被标记为已过期。

如果secs 或nsecs 的值为std::numeric_limits<qint64>::max() ,则该QDeadlineTimer 将被设置为永不过期。如果nsecs 超过10亿纳秒(1秒),则secs 将相应调整。

另请参阅 setDeadline()、deadline()、deadlineNSecs() 以及setRemainingTime()。

[noexcept] void QDeadlineTimer::setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)

将该QDeadlineTimer 对象的剩余时间设置为从当前时刻起secs 秒加上nsecs 纳秒;若secs 为正值。若secs 为负值,则该QDeadlineTimer 将被设置为永不过期(此行为不适用于nsecs )。若两个参数均为零,则该QDeadlineTimer 将被标记为已过期。

出于优化目的,如果secs 和nsecs 均为零,该函数可能会跳过获取当前时间,转而使用已知的过去时间值。如果发生这种情况,deadline() 可能会返回一个意外值,且该对象无法用于计算逾期时间。如果需要该功能,请使用QDeadlineTimer::current() 并向其添加时间。

此QDeadlineTimer 对象的计时器类型将设置为指定的timerType 。

注意:在 Qt 6.6之前, 唯一会导致计时器永不过期的条件是当secs 为 -1 时。

另请参阅 setRemainingTime()、hasExpired()、isForever(),以及remainingTime()。

[noexcept] void QDeadlineTimer::setRemainingTime(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)

如果msecs 的值为正,则将此QDeadlineTimer 对象的剩余时间设置为从现在起msecs 毫秒。如果msecs 为零,则此QDeadlineTimer 对象将被标记为已过期;而负值则会将其设置为永不过期。

出于优化目的,如果msecs 为零,本函数可能会跳过获取当前时间,转而使用已知的过去时间值。如果发生这种情况,deadline() 可能会返回一个意外的值,且该对象无法用于计算其逾期时间。如果需要该功能,请使用QDeadlineTimer::current() 并向其添加时间。

此QDeadlineTimer 对象的计时器类型将设置为指定的timerType 。

注意:在 Qt 6.6之前, 唯一能使计时器永不超时的值是 -1。

另请参阅 setPreciseRemainingTime()、hasExpired()、isForever(),以及remainingTime()。

template <typename Rep, typename Period> void QDeadlineTimer::setRemainingTime(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)

将此QDeadlineTimer 对象的剩余时间设置为remaining 。如果remaining 为零或负数,则此QDeadlineTimer 对象将被标记为已过期;而如果remaining 等于duration::max() ,则该对象将被设置为永不过期。

该QDeadlineTimer 对象的计时器类型将设置为指定的type 。

该函数可与C++14 的用户定义时间字面量配合使用,例如:

    using namespace std::chrono_literals;
    deadline.setRemainingTime(250ms);

这是一个重载函数。

另请参阅 setDeadline()、remainingTime()、hasExpired() 和isForever()。

void QDeadlineTimer::setTimerType(Qt::TimerType timerType)

将该对象的计时器类型更改为timerType 。

timerType 的每个可能值的行为取决于操作系统。Qt::PreciseTimer 将使用 Qt 能找到的最精确的定时器,其分辨率为 1 毫秒或更高;而QDeadlineTimer 则会尝试使用分辨率更粗的定时器,适用于Qt::CoarseTimer 和Qt::VeryCoarseTimer 。

另请参阅 timerType() 和Qt::TimerType 。

[noexcept] void QDeadlineTimer::swap(QDeadlineTimer &other)

将此截止时间计时器替换为other 。此操作速度极快,且绝不会失败。

[noexcept] Qt::TimerType QDeadlineTimer::timerType() const

返回该对象当前处于活动状态的定时器类型。

另请参阅 setTimerType()。

QDeadlineTimer &QDeadlineTimer::operator+=(qint64 msecs)

将此QDeadlineTimer 对象的生存时间延长msecs 毫秒,并返回该对象本身。如果该对象被设置为永不过期,则此函数不执行任何操作。

若需添加精度高于 1 毫秒的时间,请使用addNSecs()。

QDeadlineTimer &QDeadlineTimer::operator-=(qint64 msecs)

将此QDeadlineTimer 对象的剩余时间缩短msecs 毫秒,并返回该对象本身。如果此对象设置为永不过期,则该函数不执行任何操作。

若要减去精度大于 1 毫秒的时间,请使用addNSecs()。

template <typename Rep, typename Period> QDeadlineTimer &QDeadlineTimer::operator=(std::chrono::duration<Rep, Period> remaining)

将此截止时间计时器设置为remaining 时间。

template <typename Clock, typename Duration = typename Clock::duration> QDeadlineTimer &QDeadlineTimer::operator=(std::chrono::time_point<Clock, Duration> deadline_)

将deadline_ 分配给此截止时间计时器。

相关非会员

[noexcept] bool operator!=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果 `lhs ` 上的截止时间与 `rhs ` 中的截止时间不同,则返回 true;否则返回 false。创建这两个截止时间所使用的定时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() != rhs.deadlineNSecs();

注意: 不支持比较使用 不同计时器类型的QDeadlineTimer 对象,这可能会导致不可预测的行为。

QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs)

返回一个QDeadlineTimer 对象,其截止时间比存储在dt 中的截止时间晚msecs 。如果dt 设置为永不过期,则该函数返回一个同样永不过期的QDeadlineTimer 。

若需添加精度高于 1 毫秒的时间,请使用addNSecs()。

QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt)

返回一个QDeadlineTimer 对象,其截止时间比存储在dt 中的截止时间晚msecs 。如果dt 设置为永不过期,则该函数返回一个同样永不过期的QDeadlineTimer 。

若要添加精度高于 1 毫秒的时间,请使用addNSecs()。

QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs)

返回一个QDeadlineTimer 对象,其截止时间msecs 早于dt 中存储的截止时间。如果dt 设置为永不过期,则该函数返回一个同样永不过期的QDeadlineTimer 。

若要进行精度大于 1 毫秒的时间减法运算,请使用addNSecs()。

[noexcept] bool operator<(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果 `lhs ` 上的截止时间早于 `rhs` 中的截止时间,则返回 true;否则返回 false。用于创建这两个截止时间的计时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() < rhs.deadlineNSecs();

注意: 不支持比较使用 不同计时器类型的QDeadlineTimer 对象,这可能会导致不可预测的行为。

[noexcept] bool operator<=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果lhs 上的截止时间早于或等于rhs 中的截止时间,则返回 true;否则返回 false。创建这两个截止时间所使用的计时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() <= rhs.deadlineNSecs();

注意: 不支持比较 具有不同计时器类型的QDeadlineTimer 对象,这可能会导致无法预料的行为。

[noexcept] bool operator==(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果lhs 上的截止时间与rhs 中的截止时间相同,则返回 true;否则返回 false。创建这两个截止时间所使用的计时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() == rhs.deadlineNSecs();

注意: 不支持比较使用 不同计时器类型的QDeadlineTimer 对象,这可能会导致不可预测的行为。

[noexcept] bool operator>(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果 `lhs ` 上的截止时间晚于 `rhs` 中的截止时间,则返回 true;否则返回 false。用于创建这两个截止时间的定时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() > rhs.deadlineNSecs();

注意: 不支持比较 具有不同计时器类型的QDeadlineTimer 对象,这可能会导致不可预测的行为。

[noexcept] bool operator>=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

如果lhs 上的截止时间晚于或等于rhs 中的截止时间,则返回 true;否则返回 false。用于创建这两个截止时间的定时器类型将被忽略。此函数等同于:

    return lhs.deadlineNSecs() >= rhs.deadlineNSecs();

注意: 不支持比较使用 不同定时器类型的QDeadlineTimer 对象,这可能会导致行为不可预测。

© 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.