QDeadlineTimer 类
QDeadlineTimer 类在将来标记一个截止日期。更多信息...
头文件 | #include <qdeadlinetimer> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
注意: 此类中所有函数都是 可重入的。
公共类型
enum class | ForeverConstant { 永远 } |
公共函数
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) | |
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::time_point<Clock, Duration> deadline_) |
QDeadlineTimer & | operator=(std::chrono::duration<Rep, Period> remaining) |
静态公共成员
QDeadlineTimer | addNSecs(QDeadlineTimer dt, qint64 nsecs) |
QDeadlineTimer | current(Qt::TimerType timerType = Qt::CoarseTimer) |
相关非成员
bool | operator!=(QDeadlineTimer d1, QDeadlineTimer d2) |
QDeadlineTimer | operator+(QDeadlineTimer dt, qint64 msecs) |
QDeadlineTimer | operator+(qint64 msecs, QDeadlineTimer dt) |
QDeadlineTimer | operator-(QDeadlineTimer dt, qint64 msecs) |
bool | operator<(QDeadlineTimer d1, QDeadlineTimer d2) |
bool | operator<=(QDeadlineTimer d1, QDeadlineTimer d2) |
bool | operator==(QDeadlineTimer d1, QDeadlineTimer d2) |
bool | operator>(QDeadlineTimer d1, QDeadlineTimer d2) |
bool | operator>=(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::duration
和 std::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);
另请参阅 QTime、QTimer、QDeadlineTimer 和 Qt::TimerType。
成员类型文档
enum class QDeadlineTimer::ForeverConstant
常量 | 值 | 描述 |
---|---|---|
QDeadlineTimer::ForeverConstant::Forever | 0 | 用于创建 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::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()。
[显式 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()返回最大值。
另请参阅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 对象的截止日期为自参考时钟(与 QElapsedTimer::msecsSinceReference() 相同)计 msecs 毫秒的时间点,并将计时器类型设置为 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 对象的截止日期为自参考时钟纪元(与 QElapsedTimer::msecsSinceReference() 相同)计 secs 秒和 nsecs 纳秒,并将计时器类型设置为 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)。如果两个参数都为0,则此 QDeadlineTimer 将被标记为已过期。
出于优化的目的,如果 secs 和 nsecs 都为0,该函数可能会省略获取当前时间,而可能使用已知在不远的过去的一个值。如果发生这种情况,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)
将此 QDeadlineTimer 对象的剩余时间设置为从现在开始的 msecs 毫秒,如果 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);
注意: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)
如果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)
如果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.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者所有。