Sur cette page

QDeadlineTimer Class

La classe QDeadlineTimer permet de définir une date limite dans le futur. En savoir plus...

En-tête : #include <QDeadlineTimer>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Comparaisons de QDeadlineTimer

CatégorieTypes comparables
strongQDeadlineTimer

Types publics

enum class ForeverConstant { Forever }

Fonctions publiques

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

Membres publics statiques

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)

Description détaillée

La classe QDeadlineTimer est généralement utilisée pour calculer des délais futurs et vérifier si le délai est écoulé. QDeadlineTimer peut également être utilisé pour des délais sans date d'expiration (« à durée indéterminée »). Elle constitue le pendant de QElapsedTimer, qui calcule le temps écoulé depuis l'appel de QElapsedTimer::start().

QDeadlineTimer offre une API plus pratique que celle de QElapsedTimer::hasExpired().

Le cas d’utilisation typique de cette classe consiste à créer un QDeadlineTimer avant le lancement de l’opération en question, puis à utiliser remainingTime() ou hasExpired() pour déterminer s’il faut continuer à tenter l’opération. Les objets QDeadlineTimer peuvent être transmis aux fonctions appelées pour exécuter cette opération afin qu’elles sachent combien de temps elles doivent encore fonctionner.

    void executeOperation(int msecs)
    {
        QDeadlineTimer deadline(msecs);
        do {
            if (readFromDevice(deadline.remainingTime()))
                break;
            waitForReadyRead(deadline);
        } while (!deadline.hasExpired());
    }

De nombreuses fonctions de QDeadlineTimer gèrent des valeurs de délai d'expiration, toutes mesurées en millisecondes. Il existe deux valeurs spéciales, identiques à celles de nombreuses autres fonctions Qt nommées waitFor ou similaires :

  • 0 : plus de temps restant, délai écoulé
  • -1 : temps infini, le temporisateur n'expire jamais

Horloges de référence

QDeadlineTimer utilise la même horloge que QElapsedTimer (voir QElapsedTimer::clockType() et QElapsedTimer::isMonotonic()).

Types de minuteurs

À l'instar de QTimer et QChronoTimer, QDeadlineTimer permet de choisir entre différents niveaux de précision pour les minuteurs. Vous pouvez opter pour une mesure précise en passant Qt::PreciseTimer aux fonctions qui définissent ou modifient le minuteur, ou pour une mesure approximative en passant Qt::CoarseTimer. Qt::VeryCoarseTimer est actuellement interprété de la même manière que Qt::CoarseTimer.

Cette fonctionnalité dépend de la prise en charge par le système d’exploitation : si le système d’exploitation ne prend pas en charge la fonctionnalité de temporisation approximative, alors QDeadlineTimer se comportera comme si Qt::PreciseTimer avait été passé.

QDeadlineTimer utilise par défaut Qt::CoarseTimer car, sur les systèmes d’exploitation prenant en charge la chronométrie grossière, les appels de chronométrie vers cette source d’horloge sont souvent bien plus efficaces. Le niveau de grossièreté dépend du système d’exploitation, mais devrait être de l’ordre de quelques millisecondes.

std::chrono Compatibilité

QDeadlineTimer est compatible avec l’API std::chrono de C++11 et peut être instancié à partir d’objets std::chrono::duration et std::chrono::time_point, ou comparé à ceux-ci. De plus, il est entièrement compatible avec les littéraux temporels de C++14, ce qui permet d’écrire du code tel que :

    using namespace std::chrono;
    using namespace std::chrono_literals;

    QDeadlineTimer deadline(30s);
    device->waitForReadyRead(deadline);
    if (deadline.remainingTimeAsDuration() > 300ms)
        cleanup();

Comme le montre l’exemple ci-dessus, QDeadlineTimer propose une version templatisée des fonctions ` remainingTime()` et ` deadline()` qui peut être utilisée pour renvoyer des objets ` std::chrono `.

Notez que la comparaison avec ` time_point ` n’est pas aussi efficace que celle avec ` duration`, car QDeadlineTimer peut avoir besoin de convertir sa propre source d’horloge interne vers la source d’horloge utilisée par l’objet ` time_point `. Notez également qu’en raison de cette conversion, les délais ne seront pas précis ; on ne s’attend donc pas à ce que le code suivant donne des résultats identiques :

    using namespace std::chrono;
    using namespace std::chrono_literals;
    auto now = steady_clock::now();
    QDeadlineTimer deadline(now + 1s);
    Q_ASSERT(deadline == now + 1s);

Voir également QTime, QChronoTimer, QElapsedTimer et Qt::TimerType.

Documentation sur les types de membres

enum class QDeadlineTimer::ForeverConstant

ConstanteValeurDescription
QDeadlineTimer::ForeverConstant::Forever0Utilisée lors de la création d'une « QDeadlineTimer » pour indiquer que la date limite ne doit pas expirer

Documentation des fonctions membres

[constexpr noexcept default] QDeadlineTimer::QDeadlineTimer()

[explicit constexpr noexcept] QDeadlineTimer::QDeadlineTimer(Qt::TimerType timerType)

Crée un objet ` QDeadlineTimer ` dont le délai d'expiration est écoulé. Pour cet objet, la méthode ` remainingTime()` renverra 0. Si ` timerType ` n'est pas défini, l'objet utilisera la valeur par défaut ` coarse ` timer type.

Le type de minuteur timerType peut être ignoré, car le minuteur a déjà expiré. De même, à des fins d’optimisation, cette fonction ne tentera pas d’obtenir l’heure actuelle et utilisera une valeur connue pour appartenir au passé. Par conséquent, la fonction deadline() peut renvoyer une valeur inattendue et cet objet ne peut pas être utilisé pour calculer depuis combien de temps il est en retard. Si cette fonctionnalité est requise, utilisez la fonction QDeadlineTimer::current().

Voir également hasExpired(), remainingTime(), Qt::TimerType et current().

[constexpr noexcept] QDeadlineTimer::QDeadlineTimer(QDeadlineTimer::ForeverConstant, Qt::TimerType timerType = Qt::CoarseTimer)

Les objets `QDeadlineTimer` créés avec ` ForeverConstant ` n'expirent jamais. Pour ces objets, la fonction ` remainingTime()` renvoie -1, ` deadline()` renvoie la valeur maximale et ` isForever()` renvoie `true`.

Le type de minuteur « timerType » peut être ignoré, puisque le minuteur n'expirera jamais.

Voir également ForeverConstant, hasExpired(), isForever(), remainingTime() et timerType().

[explicit noexcept] QDeadlineTimer::QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer)

Crée un objet `QDeadlineTimer` dont l'expiration est fixée à ` msecs ` millisecondes à compter du moment de la création de cet objet, si `msecs` est positif. Si ` msecs ` est égal à zéro, ce `QDeadlineTimer` sera marqué comme expiré, ce qui fera que ` remainingTime()` renverra zéro et que ` deadline()` renverra un moment indéterminé dans le passé. Si ` msecs ` est négatif, le minuteur sera configuré pour ne jamais expirer, ce qui fera que ` remainingTime()` renverra -1 et que ` deadline()` renverra la valeur maximale.

L'objet QDeadlineTimer sera instancié avec le minuteur spécifié type.

À des fins d’optimisation, si msecs est égal à zéro, cette fonction peut omettre de récupérer l’heure actuelle et utiliser à la place une valeur connue comme appartenant au passé. Dans ce cas, deadline() peut renvoyer une valeur inattendue et cet objet ne peut pas être utilisé pour calculer depuis combien de temps il est en retard. Si cette fonctionnalité est requise, utilisez QDeadlineTimer::current() et ajoutez-y du temps.

Remarque : avant Qt 6.6, la seule valeur qui empêchait le minuteur d’expirer était -1.

Voir également hasExpired(), isForever(), remainingTime() et setRemainingTime().

template <typename Rep, typename Period> QDeadlineTimer::QDeadlineTimer(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)

Crée un objet `QDeadlineTimer` avec un temps restant de ` remaining`. Si ` remaining ` est égal à zéro ou à une valeur négative, cet objet `QDeadlineTimer` sera marqué comme expiré, tandis que si ` remaining ` est égal à ` duration::max()`, l'objet sera configuré pour ne jamais expirer.

L'objet QDeadlineTimer sera instancié avec le minuteur spécifié type.

Ce constructeur peut être utilisé avec les littéraux de temps définis par l'utilisateur de C++14, comme dans :

    using namespace std::chrono_literals;
    QDeadlineTimer deadline(250ms);

À des fins d’optimisation, si remaining est égal à zéro ou à une valeur négative, cette fonction peut omettre de récupérer l’heure actuelle et utiliser à la place une valeur connue comme appartenant au passé. Si cela se produit, la fonction deadline() peut renvoyer une valeur inattendue et cet objet ne pourra pas être utilisé pour calculer depuis combien de temps il est en retard. Si cette fonctionnalité est requise, utilisez la fonction QDeadlineTimer::current() et ajoutez-y du temps.

Voir également hasExpired(), isForever(), remainingTime() et setRemainingTime().

template <typename Clock, typename Duration = typename Clock::duration> QDeadlineTimer::QDeadlineTimer(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)

Crée un objet QDeadlineTimer avec une échéance fixée à l'instant deadline, en convertissant la source d'horloge Clock vers la source d'horloge interne de Qt (voir QElapsedTimer::clockType()).

Si deadline se situe dans le passé, cet objet QDeadlineTimer est marqué comme expiré, tandis que si deadline est égal à Duration::max(), cet objet est alors marqué comme n'expirant jamais.

L'objet QDeadlineTimer sera instancié avec le délai spécifié type.

Voir également hasExpired(), isForever(), remainingTime() et setDeadline().

[static noexcept] QDeadlineTimer QDeadlineTimer::addNSecs(QDeadlineTimer dt, qint64 nsecs)

Renvoie un objet ` QDeadlineTimer ` dont la date d'expiration est prolongée de ` nsecs ` nanosecondes par rapport à celle de ` dt`. Si ` dt ` a été défini pour ne jamais expirer, cette fonction renvoie un objet ` QDeadlineTimer ` qui n'expirera pas non plus.

Remarque : si dt a été créé comme ayant expiré, sa date d’expiration est indéterminée et l’ajout d’un délai peut ou non le rendre valide.

[static noexcept] QDeadlineTimer QDeadlineTimer::current(Qt::TimerType timerType = Qt::CoarseTimer)

Renvoie un objet ` QDeadlineTimer ` dont la durée de validité a expiré, mais qui contient obligatoirement l'heure actuelle. Les objets créés par cette fonction peuvent être utilisés pour calculer depuis combien de temps un minuteur est en retard, à l'aide de la fonction ` deadline()`.

L'objet ` QDeadlineTimer ` sera construit avec le ` timerType` spécifié.

[noexcept] qint64 QDeadlineTimer::deadline() const

Renvoie l'instant absolu correspondant à la date limite stockée dans l'objet ` QDeadlineTimer `, calculé en millisecondes par rapport à l'horloge de référence, de la même manière que la fonction ` QElapsedTimer::msecsSinceReference()`. La valeur sera antérieure à la date actuelle si cet objet ` QDeadlineTimer ` a expiré.

Si cet QDeadlineTimer n’expire jamais, cette fonction renvoie std::numeric_limits<qint64>::max().

Cette fonction peut être utilisée pour calculer le temps de retard d’un minuteur, en soustrayant QDeadlineTimer::current() ou QElapsedTimer::msecsSinceReference(), comme dans l’exemple suivant :

    qint64 realTimeLeft = deadline.deadline();
    if (realTimeLeft != (std::numeric_limits<qint64>::max)()) {
        realTimeLeft -= QDeadlineTimer::current().deadline();
        // or:
        //QElapsedTimer timer;
        //timer.start();
        //realTimeLeft -= timer.msecsSinceReference();
    }

Remarque : les minuteurs créés comme étant déjà expirés ont pour date limite un moment indéterminé dans le passé ; le calcul ci-dessus peut donc ne pas fonctionner.

Voir également remainingTime(), deadlineNSecs() et setDeadline().

[noexcept] qint64 QDeadlineTimer::deadlineNSecs() const

Renvoie l'instant absolu correspondant à la date limite stockée dans l'objet ` QDeadlineTimer `, calculé en nanosecondes par rapport à l'horloge de référence, de la même manière que la fonction ` QElapsedTimer::msecsSinceReference()`. La valeur sera antérieure à la date actuelle si cette ` QDeadlineTimer ` a expiré.

Si cet QDeadlineTimer n'expire jamais ou si le nombre de nanosecondes restant avant l'échéance ne peut pas être représenté par le type de retour, cette fonction renvoie std::numeric_limits<qint64>::max().

Cette fonction peut être utilisée pour calculer le temps de retard d’un minuteur, en soustrayant QDeadlineTimer::current(), comme dans l’exemple suivant :

    qint64 realTimeLeft = deadline.deadlineNSecs();
    if (realTimeLeft != std::numeric_limits<qint64>::max())
        realTimeLeft -= QDeadlineTimer::current().deadlineNSecs();

Remarque : les minuteurs créés comme étant déjà expirés ont pour date limite un moment indéterminé dans le passé ; le calcul ci-dessus peut donc ne pas fonctionner.

Voir également remainingTime(), deadline() et setDeadline().

[noexcept] bool QDeadlineTimer::hasExpired() const

Renvoie « true » si cet objet « QDeadlineTimer » a expiré, et « false » s'il reste du temps. Pour les objets qui ont expiré, la fonction « remainingTime() » renverra zéro et la fonction « deadline() » renverra un moment dans le passé.

QDeadlineTimer Les objets créés avec la méthode ForeverConstant n’expirent jamais et cette fonction renvoie toujours « false » pour ceux-ci.

Voir également isForever() et remainingTime().

[constexpr noexcept] bool QDeadlineTimer::isForever() const

Renvoie « true » si cet objet QDeadlineTimer n’expire jamais, « false » dans le cas contraire. Pour les minuteurs qui n’expirent jamais, la fonction remainingTime() renvoie toujours -1 et la fonction deadline() renvoie la valeur maximale.

Voir également ForeverConstant, hasExpired() et remainingTime().

[noexcept] qint64 QDeadlineTimer::remainingTime() const

Renvoie le temps restant dans cet objet ` QDeadlineTimer ` en millisecondes. Si le minuteur a déjà expiré, cette fonction renvoie zéro ; il n’est pas possible d’obtenir la durée écoulée à l’aide de cette fonction (pour cela, voir ` deadline()`). Si le minuteur a été configuré pour ne jamais expirer, cette fonction renvoie -1.

Cette fonction est adaptée à une utilisation dans les API Qt qui utilisent un délai d’expiration en millisecondes, comme les nombreuses fonctions QIODevice waitFor ou les fonctions de verrouillage temporisé disponibles dans QMutex, QWaitCondition, QSemaphore ou QReadWriteLock. Par exemple :

    mutex.tryLock(deadline.remainingTime());

Voir également setRemainingTime(), remainingTimeNSecs(), isForever() et hasExpired().

[noexcept] std::chrono::nanoseconds QDeadlineTimer::remainingTimeAsDuration() const

Renvoie le temps restant avant la date limite.

[noexcept] qint64 QDeadlineTimer::remainingTimeNSecs() const

Renvoie le temps restant dans cet objet ` QDeadlineTimer ` en nanosecondes. Si le minuteur a déjà expiré, cette fonction renvoie zéro ; il n'est pas possible d'obtenir la durée écoulée à l'aide de cette fonction. Si le minuteur a été configuré pour ne jamais expirer, cette fonction renvoie -1.

Voir également remainingTime(), isForever() et hasExpired().

[noexcept] void QDeadlineTimer::setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)

Définit la date limite de cet objet ` QDeadlineTimer ` sur l'instant absolu ` msecs `, exprimé en millisecondes à partir de l'horloge de référence (identique à ` QElapsedTimer::msecsSinceReference()`), et le type de minuteur sur ` timerType`. Si la valeur correspond à un moment passé, cet objet ` QDeadlineTimer ` sera marqué comme expiré.

Si msecs est std::numeric_limits<qint64>::max() ou si la date limite se situe au-delà d’un moment représentable dans le futur, cette QDeadlineTimer sera définie comme n’expirant jamais.

Voir également setPreciseDeadline(), deadline(), deadlineNSecs() et setRemainingTime().

template <typename Clock, typename Duration = typename Clock::duration> void QDeadlineTimer::setDeadline(std::chrono::time_point<Clock, Duration> deadline, Qt::TimerType type = Qt::CoarseTimer)

Définit cet objet ` QDeadlineTimer ` sur la date limite indiquée par le point temporel ` deadline `, en effectuant la conversion entre la source d'horloge ` Clock ` et la source d'horloge interne de Qt (voir QElapsedTimer::clockType()).

Si deadline se situe dans le passé, cet objet QDeadlineTimer est défini comme expiré, tandis que si deadline est égal à Duration::max(), cet objet est alors défini comme n'expirant jamais.

Le type de temporisateur de cet objet « QDeadlineTimer » sera défini sur la valeur spécifiée « type ».

Voir également hasExpired(), isForever() et remainingTime().

[noexcept] void QDeadlineTimer::setPreciseDeadline(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)

Définit la date limite de cet objet ` QDeadlineTimer ` à ` secs ` secondes et ` nsecs ` nanosecondes depuis l'époque de l'horloge de référence (identique à ` QElapsedTimer::msecsSinceReference()`), et le type de minuteur à ` timerType`. Si la valeur est antérieure à la date actuelle, cet objet ` QDeadlineTimer ` sera marqué comme expiré.

Si secs ou nsecs est égal à std::numeric_limits<qint64>::max(), ce QDeadlineTimer sera défini pour ne jamais expirer. Si nsecs est supérieur à 1 milliard de nanosecondes (1 seconde), alors secs sera ajusté en conséquence.

Voir également setDeadline(), deadline(), deadlineNSecs() et setRemainingTime().

[noexcept] void QDeadlineTimer::setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, Qt::TimerType timerType = Qt::CoarseTimer)

Définit la durée restante de cet objet QDeadlineTimer à secs secondes plus nsecs nanosecondes à compter de maintenant, si secs a une valeur positive. Si secs est négatif, cet objet QDeadlineTimer sera configuré pour ne jamais expirer (ce comportement ne s'applique pas à nsecs). Si les deux paramètres sont égaux à zéro, cet objet QDeadlineTimer sera marqué comme expiré.

À des fins d’optimisation, si secs et nsecs sont tous deux égaux à zéro, cette fonction peut ne pas récupérer l’heure actuelle et utiliser à la place une valeur connue comme appartenant au passé. Dans ce cas, deadline() peut renvoyer une valeur inattendue et cet objet ne peut pas être utilisé pour calculer depuis combien de temps il est périmé. Si cette fonctionnalité est requise, utilisez QDeadlineTimer::current() et ajoutez-y du temps.

Le type de minuteur de cet objet ` QDeadlineTimer ` sera défini sur la valeur spécifiée ` timerType`.

Remarque : avant Qt 6.6, la seule condition dans laquelle le minuteur n'expirait jamais était lorsque secs était égal à -1.

Voir également setRemainingTime(), hasExpired(), isForever() et remainingTime().

[noexcept] void QDeadlineTimer::setRemainingTime(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer)

Définit la durée restante de cet objet ` QDeadlineTimer ` à ` msecs ` millisecondes à compter de maintenant, si ` msecs ` a une valeur positive. Si ` msecs ` est égal à zéro, cet objet ` QDeadlineTimer ` sera marqué comme expiré, tandis qu’une valeur négative le configurera pour qu’il n’expire jamais.

À des fins d’optimisation, si msecs est égal à zéro, cette fonction peut ne pas récupérer l’heure actuelle et utiliser à la place une valeur connue comme appartenant au passé. Si cela se produit, deadline() peut renvoyer une valeur inattendue et cet objet ne pourra pas être utilisé pour calculer depuis combien de temps il est périmé. Si cette fonctionnalité est requise, utilisez QDeadlineTimer::current() et ajoutez-y du temps.

Le type de minuteur de cet objet ` QDeadlineTimer ` sera défini sur la valeur spécifiée par ` timerType`.

Remarque : avant Qt 6.6, la seule valeur qui empêchait le minuteur d’expirer était -1.

Voir également setPreciseRemainingTime(), hasExpired(), isForever() et remainingTime().

template <typename Rep, typename Period> void QDeadlineTimer::setRemainingTime(std::chrono::duration<Rep, Period> remaining, Qt::TimerType type = Qt::CoarseTimer)

Définit la durée restante de cet objet « QDeadlineTimer » sur remaining. Si remaining est égal à zéro ou à une valeur négative, cet objet « QDeadlineTimer » sera marqué comme expiré, tandis que si remaining est égal à duration::max(), l'objet sera configuré pour ne jamais expirer.

Le type de temporisateur de cet objet QDeadlineTimer sera défini sur le type spécifié.

Cette fonction peut être utilisée avec les littéraux définis par l'utilisateur de C++14 pour le temps, comme dans :

    using namespace std::chrono_literals;
    deadline.setRemainingTime(250ms);

Il s'agit d'une fonction surchargée.

Voir également setDeadline(), remainingTime(), hasExpired() et isForever().

void QDeadlineTimer::setTimerType(Qt::TimerType timerType)

Modifie le type de minuterie de cet objet pour le remplacer par « timerType ».

Le comportement associé à chaque valeur possible de ` timerType ` dépend du système d'exploitation. ` Qt::PreciseTimer ` utilise le minuteur le plus précis que Qt peut trouver, avec une résolution de 1 milliseconde ou mieux, tandis que ` QDeadlineTimer ` tente d'utiliser un minuteur moins précis pour ` Qt::CoarseTimer ` et ` Qt::VeryCoarseTimer`.

Voir également timerType() et Qt::TimerType.

[noexcept] void QDeadlineTimer::swap(QDeadlineTimer &other)

Remplace ce compte à rebours par other. Cette opération est très rapide et ne pose jamais de problème.

[noexcept] Qt::TimerType QDeadlineTimer::timerType() const

Renvoie le type de minuterie actif pour cet objet.

Voir aussi setTimerType().

QDeadlineTimer &QDeadlineTimer::operator+=(qint64 msecs)

Prolonge cet objet ` QDeadlineTimer ` de ` msecs ` millisecondes et renvoie l'objet lui-même. Si cet objet est configuré pour ne jamais expirer, cette fonction ne fait rien.

Pour ajouter des durées d'une précision supérieure à 1 milliseconde, utilisez ` addNSecs()`.

QDeadlineTimer &QDeadlineTimer::operator-=(qint64 msecs)

Réduit la durée de vie de cet objet ` QDeadlineTimer ` de ` msecs ` millisecondes et renvoie l'objet lui-même. Si cet objet est configuré pour ne jamais expirer, cette fonction ne fait rien.

Pour soustraire des durées dont la précision est supérieure à 1 milliseconde, utilisez ` addNSecs()`.

template <typename Rep, typename Period> QDeadlineTimer &QDeadlineTimer::operator=(std::chrono::duration<Rep, Period> remaining)

Règle ce minuteur de délai sur l'heure indiquée dans le fichier « remaining ».

template <typename Clock, typename Duration = typename Clock::duration> QDeadlineTimer &QDeadlineTimer::operator=(std::chrono::time_point<Clock, Duration> deadline_)

Associe « deadline_ » à ce compte à rebours.

Personnes concernées non membres

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

Renvoie « true » si la date limite indiquée sur lhs et celle indiquée sur rhs sont différentes, « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites est ignoré. Cette fonction équivaut à :

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

Remarque : la comparaison d'objets ` QDeadlineTimer ` avec des types de minuteurs différents n'est pas prise en charge et peut entraîner un comportement imprévisible.

QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs)

Renvoie un objet ` QDeadlineTimer ` dont la date d’expiration (` msecs `) est postérieure à celle enregistrée dans ` dt`. Si ` dt ` est défini sur « jamais expirer », cette fonction renvoie un objet ` QDeadlineTimer ` qui n’expire pas non plus.

Pour ajouter des durées dont la précision est supérieure à 1 milliseconde, utilisez addNSecs().

QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt)

Renvoie un objet ` QDeadlineTimer ` dont la date d'expiration est postérieure de ` msecs ` à celle stockée dans ` dt`. Si ` dt ` est défini sur « ne jamais expirer », cette fonction renvoie un objet ` QDeadlineTimer ` qui n'expire pas non plus.

Pour ajouter des durées dont la précision est supérieure à 1 milliseconde, utilisez addNSecs().

QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs)

Renvoie un objet ` QDeadlineTimer ` dont la date d'expiration est ` msecs ` avant la date d'expiration enregistrée dans ` dt`. Si ` dt ` est défini sur « ne jamais expirer », cette fonction renvoie un objet ` QDeadlineTimer ` qui n'expire pas non plus.

Pour soustraire des durées dont la précision est supérieure à 1 milliseconde, utilisez addNSecs().

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

Renvoie « true » si la date limite indiquée sur lhs est antérieure à celle indiquée sur rhs; renvoie « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites est ignoré. Cette fonction équivaut à :

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

Remarque : la comparaison d'objets ` QDeadlineTimer ` avec des types de minuteur différents n'est pas prise en charge et peut entraîner un comportement imprévisible.

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

Renvoie « true » si la date limite indiquée sur lhs est antérieure ou identique à celle indiquée sur rhs; « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites est ignoré. Cette fonction équivaut à :

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

Remarque : la comparaison d'objets ` QDeadlineTimer ` avec des types de temporisateurs différents n'est pas prise en charge et peut entraîner un comportement imprévisible.

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

Renvoie « true » si la date limite indiquée sur lhs et celle indiquée sur rhs sont identiques, « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites n'est pas pris en compte. Cette fonction équivaut à :

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

Remarque : la comparaison d'objets ` QDeadlineTimer ` avec des types de minuteur différents n'est pas prise en charge et peut entraîner un comportement imprévisible.

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

Renvoie « true » si la date limite indiquée sur lhs est postérieure à celle indiquée sur rhs; renvoie « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites est ignoré. Cette fonction équivaut à :

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

Remarque : la comparaison d'objets ` QDeadlineTimer ` de types de minuteurs différents n'est pas prise en charge et peut entraîner un comportement imprévisible.

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

Renvoie « true » si la date limite indiquée dans ` lhs ` est postérieure ou identique à celle indiquée dans ` rhs`, « false » dans le cas contraire. Le type de minuteur utilisé pour créer les deux dates limites est ignoré. Cette fonction équivaut à :

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

Remarque : la comparaison d’objets ` QDeadlineTimer ` avec des types de minuteurs différents n’est pas prise en charge et peut entraîner un comportement imprévisible.

© 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.