QDeadlineTimer Class
QDeadlineTimer 클래스는 미래의 마감일을 표시합니다. 더 보기...
Header: | #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::start ()이 호출된 후 경과된 시간을 계산하는 QElapsedTimer 에 대응하는 기능을 합니다.
QDeadlineTimer는 QElapsedTimer::hasExpired()에 비해 더 편리한 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는 std::chrono
객체를 반환하는 데 사용할 수 있는 remainingTime() 및 deadline()의 템플릿 버전을 제공합니다.
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()는 참을 반환합니다.
타이머 유형 timerType 은 타이머가 만료되지 않으므로 무시할 수 있습니다.
ForeverConstant, hasExpired(), isForever(), remainingTime() 및 timerType()도 참조하세요 .
[explicit noexcept]
QDeadlineTimer::QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer)
이 객체를 생성한 순간부터 만료 시간이 msecs msecs(msecs가 양수인 경우)인 QDeadlineTimer 객체를 생성합니다. msecs 가 0이면 이 QDeadlineTimer는 만료된 것으로 표시되어 remainingTime()는 0을 반환하고 deadline()는 과거의 불확실한 시점을 반환합니다. msecs 가 음수이면 타이머가 만료되지 않도록 설정되어 remainingTime()는 -1을 반환하고 deadline()는 최대값을 반환합니다.
지정된 타이머 type 로 QDeadlineTimer 객체가 구성됩니다.
최적화를 위해 msecs 이 0이면 이 함수는 현재 시간을 구하는 것을 건너뛰고 대신 과거에 있었던 것으로 알려진 값을 사용할 수 있습니다. 이 경우 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 이 0이거나 음수이면 이 QDeadlineTimer 객체는 만료된 것으로 표시되고, remaining 이 duration::max()
과 같으면 이 객체는 만료되지 않도록 설정됩니다.
지정된 타이머 type 를 사용하여 QDeadlineTimer 객체를 생성합니다.
이 생성자는 다음과 같이 시간에 대한 C++14의 사용자 정의 리터럴과 함께 사용할 수 있습니다:
using namespace std::chrono_literals; QDeadlineTimer deadline(250ms);
최적화를 위해 remaining 이 0이거나 음수인 경우, 이 함수는 현재 시간을 구하는 것을 건너뛰고 대신 과거에 있었던 것으로 알려진 값을 사용할 수 있습니다. 이 경우 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)
시계 소스 Clock
에서 Qt의 내부 시계 소스로 변환하여 deadline 시점에 기한이 있는 QDeadlineTimer 객체를 생성합니다 ( QElapsedTimer::clockType() 참조).
deadline 이 과거라면 이 QDeadlineTimer 객체는 만료된 것으로 설정되고, deadline 이 Duration::max()
와 같다면 이 객체는 만료되지 않는 것으로 설정됩니다.
QDeadlineTimer 객체는 지정된 타이머 type 로 구성됩니다.
hasExpired(), isForever(), remainingTime() 및 setDeadline()도 참조하세요 .
[static noexcept]
QDeadlineTimer QDeadlineTimer::addNSecs(QDeadlineTimer dt, qint64 nsecs)
dt 의 기한에서 nsecs 나노초만큼 기한이 연장된 QDeadlineTimer 객체를 반환합니다. 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 객체가 만료되면 참을 반환하고, 남은 시간이 있으면 거짓을 반환합니다. 만료된 객체의 경우 remainingTime()는 0을 반환하고 deadline()는 과거의 시점을 반환합니다.
QDeadlineTimer ForeverConstant 로 생성된 객체는 만료되지 않으며 이 함수는 항상 false를 반환합니다.
isForever() 및 remainingTime()도 참조하세요 .
[constexpr noexcept]
bool QDeadlineTimer::isForever() const
이 QDeadlineTimer 객체가 만료되지 않으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 만료되지 않는 타이머의 경우 remainingTime()는 항상 -1을 반환하고 deadline()는 최대값을 반환합니다.
ForeverConstant, hasExpired() 및 remainingTime()도 참조하세요 .
[noexcept]
qint64 QDeadlineTimer::remainingTime() const
이 QDeadlineTimer 객체의 남은 시간을 밀리초 단위로 반환합니다. 타이머가 이미 만료된 경우 이 함수는 0을 반환하며 이 함수로 기한이 지난 시간을 구할 수 없습니다(이를 확인하려면 deadline() 참조). 타이머가 만료되지 않도록 설정된 경우 이 함수는 -1을 반환합니다.
이 함수는 많은 QIODevice waitFor
함수나 QMutex, QWaitCondition, QSemaphore, QReadWriteLock 의 시간 잠금 함수와 같이 밀리초의 시간 제한이 있는 Qt API에서 사용하기에 적합합니다. 예를 들어
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 개체의 기한을 기준 시계( 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)
secs 값이 양수인 경우 이 QDeadlineTimer 객체의 남은 시간을 secs 초에 지금부터 nsecs 나노초를 더한 값으로 설정합니다. 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)
msecs 값이 양수인 경우 이 QDeadlineTimer 개체의 남은 시간을 지금부터 msecs 밀리초로 설정합니다. msecs 값이 0이면 이 QDeadlineTimer 객체는 만료된 것으로 표시되고, 음수 값이면 만료되지 않도록 설정됩니다.
최적화를 위해 msecs 가 0인 경우 이 함수는 현재 시간을 구하는 것을 건너뛰고 대신 과거에 있었던 것으로 알려진 값을 사용할 수 있습니다. 이 경우 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 이 0이거나 음수이면 이 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 의 각 가능한 값에 대한 동작은 운영체제에 따라 다릅니다. Qt::PreciseTimer 은 1 밀리초 이상의 분해능으로 Qt 가 찾을 수 있는 가장 정밀한 타이머를 사용하는 반면, 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 의 마감일이 다르면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
return lhs.deadlineNSecs() != rhs.deadlineNSecs();
참고: 타이머 유형이 다른 QDeadlineTimer 객체를 비교하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs)
dt 에 저장된 기한보다 msecs 늦은 기한을 가진 QDeadlineTimer 객체를 반환합니다. dt 이 만료되지 않도록 설정된 경우 이 함수는 만료되지 않는 QDeadlineTimer 도 반환합니다.
1밀리초보다 큰 정밀도의 시간을 추가하려면 addNSecs()를 사용합니다.
QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt)
dt 에 저장된 기한보다 msecs 늦은 기한을 가진 QDeadlineTimer 객체를 반환합니다. dt 이 만료되지 않도록 설정된 경우 이 함수는 만료되지 않는 QDeadlineTimer 도 반환합니다.
1밀리초보다 큰 정밀도의 시간을 추가하려면 addNSecs()를 사용합니다.
QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs)
dt 에 저장된 기한보다 기한이 msecs 인 QDeadlineTimer 객체를 반환합니다. dt 이 만료되지 않도록 설정된 경우 이 함수는 만료되지 않는 QDeadlineTimer 도 반환합니다.
1밀리초보다 큰 정밀도의 시간을 빼려면 addNSecs()를 사용합니다.
[noexcept]
bool operator<(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
lhs 의 마감일이 rhs 의 마감일보다 빠르면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
return lhs.deadlineNSecs() < rhs.deadlineNSecs();
참고: 타이머 유형이 다른 QDeadlineTimer 객체를 비교하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
[noexcept]
bool operator<=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
lhs 의 마감일이 rhs 의 마감일보다 빠르거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
return lhs.deadlineNSecs() <= rhs.deadlineNSecs();
참고: 타이머 유형이 다른 QDeadlineTimer 객체를 비교하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
[noexcept]
bool operator==(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
lhs 의 마감일과 rhs 의 마감일이 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
return lhs.deadlineNSecs() == rhs.deadlineNSecs();
참고: 타이머 유형이 다른 QDeadlineTimer 객체를 비교하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
[noexcept]
bool operator>(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
lhs 의 마감일이 rhs 의 마감일보다 늦으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
return lhs.deadlineNSecs() > rhs.deadlineNSecs();
참고: 타이머 유형이 다른 QDeadlineTimer 객체를 비교하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
[noexcept]
bool operator>=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)
lhs 의 마감일이 rhs 의 마감일보다 늦거나 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 두 마감일을 만드는 데 사용된 타이머 유형은 무시됩니다. 이 함수는 다음과 같습니다:
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.