이 페이지에서

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::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.remainingTimeAsDuration() > 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, QElapsedTimer 및 Qt::TimerType도 참조하십시오 .

멤버 유형 문서

enum class QDeadlineTimer::ForeverConstant

상수값설명
QDeadlineTimer::ForeverConstant::Forever0QDeadlineTimer 를 생성할 때 만료 기한이 만료되지 않아야 함을 나타내는 데 사용됩니다

멤버 함수 문서

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

msecs가 양수인 경우, 이 객체가 생성된 시점부터 msecs msecs 후 만료되도록 QDeadlineTimer 객체를 생성합니다. msecs 가 0인 경우, 이 QDeadlineTimer는 만료된 것으로 표시되어 remainingTime()가 0을 반환하고, deadline()가 과거의 불확정 시점을 반환하게 됩니다. msecs 가 음수인 경우, 타이머는 만료되지 않도록 설정되며, 이로 인해 remainingTime()는 -1을 반환하고 deadline()는 최대값을 반환합니다.

QDeadlineTimer 객체는 지정된 타이머 type 를 사용하여 생성됩니다.

최적화를 위해, 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() 와 같을 경우, 해당 객체는 만료되지 않도록 설정됩니다.

QDeadlineTimer 객체는 지정된 타이머 type 로 생성됩니다.

이 생성자는 다음과 같이 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)

deadline 시점의 마감 시간을 가진 QDeadlineTimer 객체를 생성하며, 시계 소스 Clock 를 Qt의 내부 시계 소스로 변환합니다( 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(), deadline(), setDeadline()도 참조하십시오 .

[noexcept] bool QDeadlineTimer::hasExpired() const

이 QDeadlineTimer 객체의 유효 기간이 만료된 경우 true를, 유효 기간이 남아 있는 경우 false를 반환합니다. 유효 기간이 만료된 객체의 경우, remainingTime()은 0을 반환하고, 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 객체의 남은 시간을 밀리초 단위로 반환합니다. 타이머가 이미 만료된 경우, 이 함수는 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 객체의 만료 시점을 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 객체의 만료 시점을 기준 시계 에포크(epoch)로부터 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 의 값이 양수인 경우, 현재 시점으로부터 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);

이 함수는 오버로드된 함수입니다.

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)

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 의 마감 시간보다 빠르면 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.