Sur cette page

QBasicTimer Class

La classe QBasicTimer permet de gérer les événements de temporisation pour les objets. En savoir plus...

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

Types publics

Fonctions publiques

QBasicTimer()
QBasicTimer(QBasicTimer &&other)
~QBasicTimer()
(since 6.8) Qt::TimerId id() const
bool isActive() const
(since 6.5) void start(QBasicTimer::Duration duration, QObject *object)
(since 6.5) void start(QBasicTimer::Duration duration, Qt::TimerType timerType, QObject *obj)
void stop()
void swap(QBasicTimer &other)
QBasicTimer &operator=(QBasicTimer &&other)
void swap(QBasicTimer &lhs, QBasicTimer &rhs)

Description détaillée

Il s'agit d'une classe rapide, légère et de bas niveau utilisée en interne par Qt. Nous vous recommandons d'utiliser la classe de niveau supérieur QTimer plutôt que cette classe si vous souhaitez utiliser des minuteries dans vos applications. Notez que cette minuterie est une minuterie récurrente qui enverra des événements de minuterie successifs à moins que la fonction stop() ne soit appelée.

Pour utiliser cette classe, créez un objet `QBasicTimer`, puis appelez sa fonction ` start()` en lui passant un intervalle de temporisation et un pointeur vers une sous-classe de ` QObject `. Lorsque le minuteur arrive à expiration, il envoie un événement de minuteur à la sous-classe ` QObject `. Le minuteur peut être arrêté à tout moment à l’aide de la fonction stop(). La fonction isActive() renvoie la valeur « true » pour un minuteur en cours d’exécution, c’est-à-dire qui a été lancé, n’a pas atteint son délai d’expiration et n’a pas été arrêté. L’identifiant du minuteur peut être récupéré à l’aide de la fonction timerId().

Les objets de cette classe ne peuvent pas être copiés, mais peuvent être déplacés ; vous pouvez donc gérer une liste de minuteurs de base en les conservant dans un conteneur prenant en charge les types « move-only », par exemple std::vector.

Voir également QTimer, QChronoTimer, QTimerEvent, QObject::timerEvent(), les temporisateurs et les transformations affines.

Documentation sur les types membres

[alias] QBasicTimer::Duration

Un type de type « std::chrono::duration » utilisé dans diverses API de cette classe. Ce type a pour but de faciliter une éventuelle transition vers une granularité supérieure ou inférieure.

Sur toutes les plateformes actuelles, il s'agit d'nanoseconds.

Documentation des fonctions membres

[constexpr noexcept] QBasicTimer::QBasicTimer()

Crée un minuteur de base.

Voir aussi start().

[noexcept] QBasicTimer::QBasicTimer(QBasicTimer &&other)

Crée par « move » un minuteur de base à partir de other, qui est ensuite laissé à inactive.

Voir également isActive() et swap().

[noexcept] QBasicTimer::~QBasicTimer()

Supprime le minuteur principal.

[noexcept, since 6.8] Qt::TimerId QBasicTimer::id() const

Renvoie l'identifiant du minuteur.

Cette fonction a été introduite dans Qt 6.8.

Voir également QTimerEvent::id().

[noexcept] bool QBasicTimer::isActive() const

Renvoie « true » si le minuteur est en cours d'exécution et n'a pas été arrêté ; sinon, renvoie « false ».

Voir également start() et stop().

[since 6.5] void QBasicTimer::start(QBasicTimer::Duration duration, QObject *object)

Lance (ou relance) le minuteur avec un délai d'duration. Le minuteur sera de type « Qt::CoarseTimer ». Consultez Qt::TimerType pour plus d'informations sur les différents types de minuteurs.

L’ object spécifié recevra les événements du minuteur.

À partir de Qt 6.10, la définition d’un intervalle négatif entraînera un avertissement d’exécution et la valeur sera réinitialisée à 1 ms. Avant Qt 6.10, un Qt Timer vous permettait de définir un intervalle négatif, mais se comportait de manière imprévisible (par exemple, il pouvait arrêter le minuteur s’il était en cours d’exécution ou ne pas le démarrer du tout).

Remarque : à partir de Qt 6.9, cette méthode accepte des valeurs de type std::chrono::nanoseconds ; auparavant, elle acceptait des valeurs de type std::chrono::milliseconds. Ce changement est rétrocompatible.

Cette fonction a été introduite dans Qt 6.5.

Voir également stop(), isActive(), QObject::timerEvent() et Qt::CoarseTimer.

[since 6.5] void QBasicTimer::start(QBasicTimer::Duration duration, Qt::TimerType timerType, QObject *obj)

Lance (ou relance) le minuteur avec un délai d'expiration de ` duration ` et la valeur ` timerType` indiquée. Consultez Qt::TimerType pour plus d'informations sur les différents types de minuteurs.

À partir de Qt 6.10, la définition d’un intervalle négatif entraîne un avertissement d’exécution et la valeur est réinitialisée à 1 ms. Avant Qt 6.10, un Qt Timer vous permettait de définir un intervalle négatif, mais se comportait de manière imprévisible (par exemple, il pouvait arrêter le minuteur s’il était en cours d’exécution ou ne pas le démarrer du tout).

obj recevra les événements du minuteur.

Remarque : à partir de Qt 6.9, cette méthode prend en paramètre std::chrono::nanoseconds ; auparavant, elle prenait std::chrono::milliseconds. Ce changement est rétrocompatible.

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

Cette fonction a été introduite dans Qt 6.5.

Voir également stop(), isActive(), QObject::timerEvent() et Qt::TimerType.

void QBasicTimer::stop()

Arrête le chronomètre.

Voir également start() et isActive().

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

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

[noexcept] QBasicTimer &QBasicTimer::operator=(QBasicTimer &&other)

Cette opération attribue la valeur « other » à ce temporisateur de base. Le temporisateur précédemment représenté par ce temporisateur de base est arrêté. La valeur « other » reste définie sur « inactive ».

Voir également stop(), isActive() et swap().

Éléments non membres associés

[noexcept] void swap(QBasicTimer &lhs, QBasicTimer &rhs)

Remplace l'lhs de la minuterie par rhs. Cette opération est très rapide et ne pose jamais de problème.

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