QDeadlineTimer 类

QDeadlineTimer 类在将来标记一个截止日期。更多信息...

头文件 #include <qdeadlinetimer>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

注意: 此类中所有函数都是 可重入的

公共类型

enum classForeverConstant { 永远 }

公共函数

QDeadlineTimer()
QDeadlineTimer(Qt::TimerType timerType)
QDeadlineTimer(QDeadlineTimer::ForeverConstant, Qt::TimerType timerType = Qt::CoarseTimer)
QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer)
QDeadlineTimer(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)
QDeadlineTimer(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)
qint64deadline() const
qint64deadlineNSecs() const
boolhasExpired() const
boolisForever() const
qint64remainingTime() const
std::chrono::nanosecondsremainingTimeAsDuration() const
qint64remainingTimeNSecs() const
voidsetDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)
voidsetDeadline(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)
voidsetPreciseDeadline(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)
voidsetPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)
voidsetRemainingTime(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)
voidsetRemainingTime(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)
voidsetTimerType(Qt::TimerType timerType)
voidswap(QDeadlineTimer & other)
Qt::TimerTypetimerType() const
QDeadlineTimer &operator+=(qint64 msecs)
QDeadlineTimer &operator-=(qint64 msecs)
QDeadlineTimer &operator=(std::chrono::time_point<Clock, Duration> deadline_)
QDeadlineTimer &operator=(std::chrono::duration<Rep, Period> remaining)

静态公共成员

QDeadlineTimeraddNSecs(QDeadlineTimer dt, qint64 nsecs)
QDeadlineTimercurrent(Qt::TimerType timerType = Qt::CoarseTimer)
booloperator!=(QDeadlineTimer d1, QDeadlineTimer d2)
QDeadlineTimeroperator+(QDeadlineTimer dt, qint64 msecs)
QDeadlineTimeroperator+(qint64 msecs, QDeadlineTimer dt)
QDeadlineTimeroperator-(QDeadlineTimer dt, qint64 msecs)
booloperator<(QDeadlineTimer d1, QDeadlineTimer d2)
booloperator<=(QDeadlineTimer d1, QDeadlineTimer d2)
booloperator==(QDeadlineTimer d1, QDeadlineTimer d2)
booloperator>(QDeadlineTimer d1, QDeadlineTimer d2)
booloperator>=(QDeadlineTimer d1, QDeadlineTimer d2)

详细描述

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类似,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::durationstd::chrono::time_point 对象进行比较。此外,它完全兼容 C++14 的时间字面值,允许编写如下所示的代码

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

    QDeadlineTimer deadline(30s);
    device->waitForReadyRead(deadline);
    if (deadline.remainingTime<nanoseconds>() > 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);

另请参阅 QTimeQTimerQDeadlineTimerQt::TimerType

成员类型文档

enum class QDeadlineTimer::ForeverConstant

常量描述
QDeadlineTimer::ForeverConstant::Forever0用于创建 QDeadlineTimer 时,表示最终期限不应过期

成员函数文档

[constexpr noexcept] QDeadlineTimer::QDeadlineTimer()

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

构建一个过期的 QDeadlineTimer 对象。对于此对象,remainingTime() 将返回 0。如果未设置 timerType,则对象将使用 coarse 计时器类型

计时器类型 timerType 可忽略,因为计时器已经过期。类似地,为了优化,此函数不会尝试获取当前时间,并使用已知在过去的值。因此,deadline() 可能返回意外的值,并且无法使用此对象计算逾期时间。如果需要此功能,请使用 QDeadlineTimer::current()。

另请参阅 hasExpired()、remainingTime()、Qt::TimerTypecurrent()。

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

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

计时器类型 timerType 可忽略,因为计时器永远不会过期。

另请参阅 ForeverConstanthasExpired()、isForever()、remainingTime() 和 timerType()。

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

以从该对象的创建时刻起 msecs msecs 的到期时间构造 QDeadlineTimer 对象,如果 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 Clock, typename Duration = typename Clock::duration> QDeadlineTimer::QDeadlineTimer(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)

deadline 时间点构造具有到期时间的 QDeadlineTimer 对象,将时钟源 Clock 转换为 Qt 的内部时钟源(参见 QElapsedTimer::clockType)。

如果 deadline 在过去,则此 QDeadlineTimer 对象被设置为已过期,而如果 deadline 等于 Duration::max(),则设置对象为永远不会过期。

该 QDeadlineTimer 对象将以指定的定时器 type 构造。

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

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为0或负数,则该函数可能会跳过获取当前时间,而改用一个已知在过去的时间值。如果出现这种情况,deadline()可能返回一个意外的值,并且该对象无法用于计算逾期时间。如果需要该功能,则使用QDeadlineTimer::current()并将时间添加到它。

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

[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()和deadlineNSecs()。

[noexcept] bool QDeadlineTimer::hasExpired() const

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

使用ForeverConstant创建的QDeadlineTimer对象永远不会过期,此函数对于它们始终返回false。

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

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

如果此QDeadlineTimer对象永远不会过期,则返回true,否则返回false。对于永远不会过期的计时器,remainingTime()始终返回-1,且deadline()返回最大值。

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

[noexcept] qint64 QDeadlineTimer::remainingTime() const

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

此函数适用于在Qt API中使用,例如许多QIODevicewaitFor函数或QMutexQWaitConditionQSemaphoreQReadWriteLock中的定时锁定函数。

    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 对象的截止日期为自参考时钟(与 QElapsedTimer::msecsSinceReference() 相同)计 msecs 毫秒的时间点,并将计时器类型设置为 timerType。如果值在过去,则此 QDeadlineTimer 将标记为已过期。

如果 msecsstd::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 对象的截止日期为自参考时钟纪元(与 QElapsedTimer::msecsSinceReference() 相同)计 secs 秒和 nsecs 纳秒,并将计时器类型设置为 timerType。如果值在过去,则此 QDeadlineTimer 将标记为已过期。

如果 secsnsecsstd::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)。如果两个参数都为0,则此 QDeadlineTimer 将被标记为已过期。

出于优化的目的,如果 secsnsecs 都为0,该函数可能会省略获取当前时间,而可能使用已知在不远的过去的一个值。如果发生这种情况,deadline() 可能会返回一个意外的值,并且该对象不能用于计算超时时间。如果需要此功能,请使用 QDeadlineTimer::current() 并向其添加时间。

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

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

另请参阅:setRemainingTime(),hasExpired(),isForeverremainingTime()。

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

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

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

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

注意:在 Qt 6.6 之前,唯一使定时器永久不过期的值是 -1。

另请参阅:setPreciseRemainingTime(),hasExpired(),isForeverremainingTime()。

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);

注意:Qt 通过 C++ 委员会立场文件 6 的特性测试建议来检测必要的 C++14 编译器支持。

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

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

更改此对象的计时器类型为 timerType

每个可能的 'timerType' 值的行为依赖于操作系统。《a href="qt.html#TimerType-enum" translate="no">Qt::PreciseTimer' 将使用 Qt 可以找到的最精确的计时器,分辨率为 1 毫秒或更优,而 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer' 将尝试为 《a href="qt.html#TimerType-enum" translate="no">Qt::CoarseTimer' 和 《a href="qt.html#TimerType-enum" translate="no">Qt::VeryCoarseTimer' 使用更粗糙的计时器。

另请参阅timerType() 和 《a href="qt.html#TimerType-enum" translate="no">Qt::TimerType。

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

交换此截止日期计时器与 其他 截止日期计时器。

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

返回此对象活动的时间类型。

另请参阅setTimerType( )。

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

msecs 毫秒添加到此 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象中,并返回自身。如果此对象被设置为永远不会超时,此函数不会执行任何操作。

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

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

缩短此 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象 msecs 毫秒并返回自身。如果此对象被设置为永远不会超时,此函数将不会执行任何操作。

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

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

deadline_ 分配给此截止日期计时器。

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

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

相关非成员

[noexcept] bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2)

如果 d1 上的截止日期与 d2 中的截止日期不同,则返回 true,否则返回 false。用于创建两个截止日期的计时器类型被忽略。此函数与以下函数等效

    return d1.deadlineNSecs() != d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">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对象,其截止时间比存储在dt中的截止时间提早msecs。如果dt设置为永不超时,则此函数返回一个也不会超时的QDeadlineTimer

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

[noexcept] bool operator<(QDeadlineTimer d1, QDeadlineTimer d2)

如果d1的截止时间早于d2的截止时间,则返回true,否则返回false。创建两个截止时间的定时器类型被忽略。此函数等价于

    return d1.deadlineNSecs() < d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象不受支持,并且可能导致不可预测的行为。

[noexcept] bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2)

如果d1的截止时间早于或等于d2的截止时间,则返回true,否则返回false。创建两个截止时间的定时器类型被忽略。此函数等价于

    return d1.deadlineNSecs() <= d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象不受支持,并且可能导致不可预测的行为。

[noexcept] bool operator==(QDeadlineTimer d1, QDeadlineTimer d2)

如果d1d2的截止时间相同,则返回true,否则返回false。创建两个截止时间的定时器类型被忽略。此函数等价于

    return d1.deadlineNSecs() == d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象不受支持,并且可能导致不可预测的行为。

[noexcept] bool operator>(QDeadlineTimer d1, QDeadlineTimer d2)

如果d1的截止时间晚于d2的截止时间,则返回true,否则返回false。创建两个截止时间的定时器类型被忽略。此函数等价于

    return d1.deadlineNSecs() > d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象不受支持,并且可能导致不可预测的行为。

[noexcept] bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2)

如果d1的截止时间晚于或等于d2的截止时间,则返回true,否则返回false。创建两个截止时间的定时器类型被忽略。此函数等价于

    return d1.deadlineNSecs() >= d2.deadlineNSecs();

注意:比较具有不同计时器类型的 《a href="qdeadlinetimer.html" translate="no">QDeadlineTimer 对象不受支持,并且可能导致不可预测的行为。

© 2024 The Qt Company Ltd. 本文档中包含的贡献均属各自所有者的版权。此处提供的文档是根据自由软件基金会发布并受GNU自由文档许可证第1.3版的条款许可的。Qt及其相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者所有。