QDeadlineTimer Class
QDeadlineTimer 类标记未来的最后期限。更多
头文件: | #include <QDeadlineTimer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
该类具有很强的可比性。
注意:该类中的所有函数都是可重入的。
公共类型
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.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,QChronoTimer,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 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,从创建该对象时算起。如果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 用户定义的时间字面量(如 in)一起使用:
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() 和 deadlineNSecs()。
[noexcept]
bool QDeadlineTimer::hasExpired() const
如果QDeadlineTimer 对象已过期,则返回 true;如果仍有剩余时间,则返回 false。对于已过期的对象,remainingTime() 将返回 0,而deadline() 将返回一个过去的时间点。
QDeadlineTimer 使用 创建的对象永远不会过期,因此该函数总是返回 false。ForeverConstant
另请参见 isForever() 和remainingTime()。
[constexpr noexcept]
bool QDeadlineTimer::isForever() const
如果QDeadlineTimer 对象永不过期,则返回 true,否则返回 false。对于永不过期的计时器,remainingTime() 总是返回 -1,而deadline() 则返回最大值。
另请参见 ForeverConstant,hasExpired() 和remainingTime()。
[noexcept]
qint64 QDeadlineTimer::remainingTime() const
返回QDeadlineTimer 对象的剩余时间(毫秒)。如果定时器已过期,则此函数将返回 0,并且无法用此函数获取逾期时间(请参阅deadline() )。如果定时器被设置为永不过期,则此函数返回-1。
此函数适用于需要毫秒超时的 Qt XML 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 对象的剩余时间(纳秒)。如果定时器已过期,则此函数将返回 0,并且无法通过此函数获得逾期时间。如果定时器被设置为永不过期,则此函数返回-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)
如果secs 为正值,则将QDeadlineTimer 对象的剩余时间设置为secs 秒加上nsecs 纳秒。如果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 用户定义的时间字面量(如 in)一起使用:
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 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 对象,该对象的截止时间msecs 晚于存储在dt 中的截止时间。如果dt 设置为永不过期,则此函数将返回一个也不会过期的QDeadlineTimer 。
要添加精度大于 1 毫秒的时间,请使用addNSecs()。
QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt)
返回一个QDeadlineTimer 对象,该对象的截止时间msecs 晚于存储在dt 中的截止时间。如果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 对象,这可能导致不可预测的行为。
© 2025 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.