このページでは

QDeadlineTimer Class

QDeadlineTimer クラスは、将来の期限を設定します。詳細...

ヘッダー: #include <QDeadlineTimer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数は再入可能である。

QDeadlineTimer の比較

カテゴリ比較可能な型
strongQDeadlineTimer の比較カテゴリ比較可能な型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 関数はタイムアウト値を扱いますが、これらはすべてミリ秒単位で測定されます。他の多くの Qt 関数と同様に、waitFor などの名前の関数には 2 つの特別な値があります:

  • 0: 残り時間なし、期限切れ
  • -1: 残り時間が無限、タイマーは決して期限切れにならない

参照クロック

QDeadlineTimer は、QElapsedTimer と同じクロックを使用します(QElapsedTimer::clockType() およびQElapsedTimer::isMonotonic() を参照)。

タイマーの種類

QTimer やQChronoTimer と同様に、QDeadlineTimer ではタイマーの精度レベルを選択できます。タイマーを設定または変更する関数にQt::PreciseTimer を渡すことで高精度なタイミングを選択したり、Qt::CoarseTimer を渡すことで粗いタイミングを選択したりできます。Qt::VeryCoarseTimer は現在、Qt::CoarseTimer と同じように解釈されます。

この機能はオペレーティングシステムのサポートに依存しています。OSが粗いタイマー機能をサポートしていない場合、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 ミリ秒後に期限が切れるように QDeadlineTimer オブジェクトを構築します。msecs が 0 の場合、この QDeadlineTimer は期限切れとしてマークされ、remainingTime() は 0 を返し、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 が 0 または負の値の場合、この QDeadlineTimer オブジェクトは期限切れとしてマークされます。一方、remaining がduration::max() に等しい場合、オブジェクトは期限切れにならないように設定されます。

QDeadlineTimer オブジェクトは、指定されたタイマーtype を使用して生成されます。

このコンストラクタは、次のようなC++14 の時間に関するユーザー定義リテラルとともに使用できます。

    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)

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 ` オブジェクトの期限を、基準クロックのエポックから `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 秒に、現在時刻からnsecs ナノ秒を加えた値に設定します(ただし、secs が正の値の場合に限ります)。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 が0の場合、この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 が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 を返します。2 つの期限の作成に使用されたタイマー型は無視されます。この関数は、以下のコードと同等です:

    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 を返します。2 つの期限の作成に使用されたタイマー型は無視されます。この関数は、以下と同等です。

    return lhs.deadlineNSecs() < rhs.deadlineNSecs();

注: 異なるタイマー型を持つQDeadlineTimer オブジェクト同士の比較は サポートされておらず、予期しない動作を引き起こす可能性があります。

[noexcept] bool operator<=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

lhs の期限がrhs の期限より早い、または同じである場合は true を返し、それ以外の場合は false を返します。2 つの期限の作成に使用されたタイマーの種類は無視されます。この関数は、以下のコードと同等です。

    return lhs.deadlineNSecs() <= rhs.deadlineNSecs();

注: 異なるタイマー型を持つQDeadlineTimer オブジェクト同士の比較は サポートされておらず、予期しない動作を引き起こす可能性があります。

[noexcept] bool operator==(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

lhs の期限とrhs の期限が同じ場合は true を返し、そうでない場合は false を返します。2 つの期限の作成に使用されたタイマー型は無視されます。この関数は、以下のコードと同等です。

    return lhs.deadlineNSecs() == rhs.deadlineNSecs();

注: 異なるタイマー型を持つQDeadlineTimer オブジェクト同士の比較は サポートされておらず、予期しない動作を引き起こす可能性があります。

[noexcept] bool operator>(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

lhs の期限がrhs の期限よりも遅い場合は true を返し、そうでない場合は false を返します。2 つの期限の作成に使用されたタイマー型は無視されます。この関数は、以下と同等です。

    return lhs.deadlineNSecs() > rhs.deadlineNSecs();

注: 異なるタイマー型を持つ `QDeadlineTimer ` オブジェクト同士の比較は サポートされておらず、予期しない動作を引き起こす可能性があります。

[noexcept] bool operator>=(const QDeadlineTimer &lhs, const QDeadlineTimer &rhs)

lhs の期限がrhs の期限と同じかそれより遅い場合は true を返し、それ以外の場合は false を返します。2 つの期限の作成に使用されたタイマー型は無視されます。この関数は、以下のコードと同等です。

    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.