IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
FAQ Qt FAQ Qt Creator FAQ PyQt & PySide

FAQ Qt

FAQ QtConsultez toutes les FAQ

Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireModulesQt CoreTemps

Les timers sont gérés avec Qt à l'aide de la classe QTimer. Cette classe est relativement simple à utiliser grâce aux méthodes suivantes :

  • intinterval() const : permet de connaître l'intervalle de temps (en ms) entre chaque déclenchement du timer ;
  • boolisActive() const : permet de déterminer si le timer est activé ou pas ;
  • boolisSingleShot() const : permet de déterminer si le timer est en mode de déclenchement unique ou pas ;
  • voidsetInterval( int msec ) : permet de paramétrer l'intervalle (en ms) entre deux déclenchements successifs du timer ;
  • voidsetSingleShot( bool singleShot ) : permet de mettre le timer en mode déclenchement unique ;
  • voidstart() : permet de démarrer le timer ;
  • voidstop () : permet d'arrêter le timer.
Création d'un chronomètre simple précis à la seconde
Cacher/Afficher le codeSélectionnez

Remarque 1 : si vous souhaitez utiliser un timer en mode "single shot" QTimer possède une méthode statique QTimer::singleShot(), qui peut vous être très utile.
Remarque 2 : un timer n'est jamais très précis et est fortement dépendant de l'OS. Si vous souhaitez être précis à la milliseconde, ce n'est pas la solution à utiliser.

Mis à jour le 7 mai 2012  par François Jaffré

La classe QTime permet de récupérer l'heure du système facilement à l'aide de la méthode statique suivante :

QTimeQTime::currentTime() permet de récupérer un objet QTime initialisé à l'heure courante.

 
Sélectionnez
//L'objet time est initialisé à l'heure courante
QTime time = QTime::currentTime();
Mis à jour le 7 mai 2012  par François Jaffré

QTime fournit la méthode elapsed() qui permet de connaître le temps écoulé (en ms) depuis l'exécution de la méthode start() ou restart().

 
Sélectionnez
QTime time;
time.start();
ma_fonction();
// millisecondes contient le nombre de millisecondes entre l'appel à la fonction start()
// et l'appel 0 la fonction elapsed()
int millisecondes = time.elapsed();

Remarque : si vous voulez vraiment mesurer précisément le temps d'exécution de certaines portions de votre code et faire du benchmarking de votre application, alors il est préférable de vous tourner vers QTestLib, qui est faite pour ça.

Mis à jour le 7 mai 2012  par François Jaffré

QDate (et QDateTime, qui contient en plus QTime) permet de manipuler la date.

Qt fournit la méthode toString(QString& format) pour convertir en chaîne de caractères les données contenues au sein d'un QDate. L'argument format permet de définir le format de la chaîne de caractères retournée. Cet argument peut se composer des symboles suivants :

  • d : le numéro du jour (1 à 31) ;
  • dd : le numéro du jour écrit avec deux chiffres (01 à 31) ;
  • ddd : l'abréviation du jour ('Lun' à 'Dim'), utilise QDate::shortDayName() ;
  • dddd : le jour ('Lundi' à 'Dimanche'), utilise QDate::longDayName() ;
  • M : le numéro du mois (1 à 12) ;
  • MM : le numéro du mois écrit avec deux chiffres (01 à 12) ;
  • MMM : l'abréviation du mois ('Jan' à 'Dec'), utilise QDate::shortMonthName() ;
  • MMMM : le mois ('Janvier' à 'Décembre'), utilise QDate::longMonthName() ;
  • yy : les deux derniers chiffres de l'année (00 à 99) ;
  • yyyy : l'année en quatre chiffres (peut être négatif, - est alors ajouté).

Note : les résultats retournés en toutes lettres par les paramètres ddd, dddd, MMM et MMMM dépendent de la langue du système.

La date contenue par QDate date est le 20 juillet 1969.

 
Sélectionnez
date.toString("dd.MM.yyyy") // Retourne "20.07.1969"
date.toString("ddd d MMMM yy") // Retourne "dimanche 20 Juillet 69"
date.toString("'Nous sommes ' dddd") // Retourne "Nous sommes dimanche"

Comme nous pouvons le constater avec le troisième exemple, il est possible d'ajouter du texte personnalisé dans l'argument de la méthode toString(). Ce texte doit être entouré par des ' (apostrophe) et sera restitué dans le résultat, à la position indiquée.

Pour afficher le caractère ' (apostrophe), il faut écrire '' (deux apostrophes consécutives).

Mis à jour le 7 mai 2012  par Niak74

Lien : Comment convertir un QTime en QString ?
Lien : Comment choisir la langue dans laquelle afficher le QString ?

QTime (et QDateTime, qui contient en plus QDate) permet de manipuler l'heure.

Qt fournit la méthode toString(QString& format) pour convertir en chaîne de caractères les données contenues au sein d'un QTime. L'argument format permet de définir le format de la chaîne de caractères retournée. Cet argument peut se composer des symboles suivants :

  • h : l'heure (0 à 23 ou 1 à 12 si affichage en AM/PM) ;
  • hh : l'heure sur deux chiffres (00 à 23 ou 01 à 12 si affichage en AM/PM) ;
  • H : l'heure (0 à 23, même si affichage en AM/PM) ;
  • HH : l'heure sur deux chiffres (00 à 23, même si affichage en AM/PM) ;
  • m : la minute (0 à 59) ;
  • mm : la minute en deux chiffres (00 à 59) ;
  • s : la seconde (0 à 59) ;
  • ss : la seconde en deux chiffres (00 à 59) ;
  • z : la milliseconde (0 à 999) ;
  • zzz : la milliseconde en trois chiffres (000 à 999) ;
  • AP ou A : affichage en AM/PM. Affiche AM ou PM à la place de AP ;
  • ap ou a : affichage en am/pm. Affiche am ou pm à la place de ap.

L'heure contenue par QTime heure est 14:13:09.042 (14 heures, 13 minutes, 9 secondes et 42 millièmes de seconde).

 
Sélectionnez
heure.toString("hh:mm:ss.zzz") // Retourne "14:13:09.042"
heure.toString("h:m:s ap") // Retourne "2:13:9 pm"
heure.toString("H:m:s a") // Retourne "14:13:9 pm"
Mis à jour le 8 avril 2017  par Niak74

Lien : Comment convertir un QDate en QString ?
Lien : Comment choisir la langue dans laquelle afficher le QString ?

Pour choisir la langue d'affichage, on peut utiliser la classe QLocale et ses différentes implémentations de la méthode toString(). Voici celles qui nous intéressent :

Il est possible de ne pas définir de format, auquel cas Qt affichera la date au format classique du pays.

On suppose que la date est définie dans la variable QDate date. On choisit le format d'écriture ddd d MMMM yy.

 
Sélectionnez
QLocale francais("fr_FR");
francais.toString(date, "ddd d MMMM yy"); //Affiche la date en français

QLocale anglaisUS("en_US");
anglaisUS.toString(date, "ddd d MMMM yy"); //Affiche la date en anglais (États-Unis).

QLocale anglaisGB("en_GB");
anglaisGB.toString(date, "ddd d MMMM yy"); //Affiche la date en anglais (Royaume-Uni).

QLocale coreen("ko");
coreen.toString(date, "ddd d MMMM yy"); //Affiche la date en coréen

QLocale allemandSuisse("de_CH");
allemandSuisse.toString(date, "ddd d MMMM yy"); //Affiche la date en allemand (Suisse)
Mis à jour le 7 mai 2012  par Niak74

Lien : Comment convertir un QDate en QString ?
Lien : Comment convertir un QTime en QString ?

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2017 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.