QProgressDialog Class
La classe QProgressDialog fournit des informations sur la progression d'une opération lente. Plus d'informations...
| En-tête : | #include <QProgressDialog> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QDialog |
- Liste de tous les membres, y compris les membres hérités
- QProgressDialog fait partie de Standard Dialogs.
Propriétés
|
Fonctions publiques
| QProgressDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| virtual | ~QProgressDialog() |
| bool | autoClose() const |
| bool | autoReset() const |
| QString | labelText() const |
| int | maximum() const |
| int | minimum() const |
| int | minimumDuration() const |
| void | open(QObject *receiver, const char *member) |
| void | setAutoClose(bool close) |
| void | setAutoReset(bool reset) |
| void | setBar(QProgressBar *bar) |
| void | setCancelButton(QPushButton *cancelButton) |
| void | setLabel(QLabel *label) |
| int | value() const |
| bool | wasCanceled() const |
Fonctions publiques réimplémentées
| virtual QSize | sizeHint() const override |
Emplacements publics
| void | cancel() |
| void | reset() |
| void | setCancelButtonText(const QString &cancelButtonText) |
| void | setLabelText(const QString &text) |
| void | setMaximum(int maximum) |
| void | setMinimum(int minimum) |
| void | setMinimumDuration(int ms) |
| void | setRange(int minimum, int maximum) |
| void | setValue(int progress) |
Signaux
| void | canceled() |
Fonctions protégées réimplémentées
| virtual void | changeEvent(QEvent *ev) override |
| virtual void | closeEvent(QCloseEvent *e) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | showEvent(QShowEvent *e) override |
Emplacements protégés
| void | forceShow() |
Description détaillée
Une boîte de dialogue de progression est utilisée pour donner à l'utilisateur une indication sur la durée d'une opération et pour montrer que l'application n'est pas figée. Elle peut également donner à l'utilisateur la possibilité d'interrompre l'opération.
Un problème courant avec les boîtes de dialogue de progression est qu'il est difficile de savoir quand les utiliser ; les opérations prennent plus ou moins de temps selon le matériel utilisé. QProgressDialog offre une solution à ce problème : il estime le temps que prendra l'opération (sur la base de la durée des étapes) et ne s'affiche que si cette estimation dépasse minimumDuration() (4 secondes par défaut).
Utilisez setMinimum() et setMaximum() ou le constructeur pour définir le nombre d'"étapes" de l'opération et appelez setValue() au fur et à mesure que l'opération progresse. Le nombre d'étapes peut être choisi arbitrairement. Il peut s'agir du nombre de fichiers copiés, du nombre d'octets reçus, du nombre d'itérations dans la boucle principale de votre algorithme ou d'une autre unité appropriée. La progression commence à la valeur définie par setMinimum(), et la boîte de dialogue de progression indique que l'opération est terminée lorsque vous appelez setValue() avec la valeur définie par setMaximum() comme argument.
La boîte de dialogue se réinitialise et se cache automatiquement à la fin de l'opération. Utilisez setAutoReset() et setAutoClose() pour modifier ce comportement. Notez que si vous définissez un nouveau maximum (en utilisant setMaximum() ou setRange()) qui est égal à votre valeur actuelle value(), la boîte de dialogue ne se fermera pas pour autant.
Il existe deux façons d'utiliser QProgressDialog : modale et sans modèle.
Par rapport à un QProgressDialog sans modèle, un QProgressDialog modal est plus simple à utiliser pour le programmeur. Effectuez l'opération dans une boucle, appelez setValue() à intervalles réguliers et vérifiez l'annulation avec wasCanceled(). Par exemple :
QProgressDialog progress("Copying files...", "Abort Copy", 0, numFiles, this); progress.setWindowModality(Qt::WindowModal); for (int i = 0; i < numFiles; i++) { progress.setValue(i); if (progress.wasCanceled()) break; //... copy one file } progress.setValue(numFiles);
Une boîte de dialogue de progression sans modèle convient aux opérations qui se déroulent en arrière-plan, lorsque l'utilisateur est en mesure d'interagir avec l'application. Ces opérations sont généralement basées sur une classe de temporisation, telle que QChronoTimer (ou la classe de bas niveau QObject::timerEvent()) ou QSocketNotifier; ou exécutées dans un thread séparé. Un QProgressBar dans la barre d'état de votre fenêtre principale est souvent une alternative à une boîte de dialogue de progression sans modèle.
Vous devez avoir une boucle d'événements en cours d'exécution, connecter le signal canceled() à un slot qui arrête l'opération, et appeler setValue() à intervalles réguliers. Par exemple, dans les deux modes, la boîte de dialogue de progression peut être en cours d'exécution :
// Operation constructor Operation::Operation(QObject *parent) : QObject(parent), steps(0) { pd = new QProgressDialog("Operation in progress.", "Cancel", 0, 100); connect(pd, &QProgressDialog::canceled, this, &Operation::cancel); t = new QTimer(this); connect(t, &QTimer::timeout, this, &Operation::perform); t->start(0); } void Operation::perform() { pd->setValue(steps); //... perform one percent of the operation steps++; if (steps > pd->maximum()) t->stop(); } void Operation::cancel() { t->stop(); //... cleanup }
Dans les deux modes, le dialogue de progression peut être personnalisé en remplaçant les widgets enfants par des widgets personnalisés en utilisant setLabel(), setBar() et setCancelButton(). Les fonctions setLabelText() et setCancelButtonText() définissent les textes affichés.

Voir également QDialog et QProgressBar.
Documentation sur les propriétés
autoClose : bool
Cette propriété indique si la boîte de dialogue est masquée par reset()
La valeur par défaut est true.
Fonctions d'accès :
| bool | autoClose() const |
| void | setAutoClose(bool close) |
Voir également setAutoReset().
autoReset : bool
Cette propriété indique si le dialogue de progression appelle reset() dès que value() est égal à maximum().
La valeur par défaut est true.
Fonctions d'accès :
| bool | autoReset() const |
| void | setAutoReset(bool reset) |
Voir également setAutoClose().
labelText : QString
Cette propriété contient le texte de l'étiquette
Le texte par défaut est une chaîne vide.
Fonctions d'accès :
| QString | labelText() const |
| void | setLabelText(const QString &text) |
maximum : int
Cette propriété contient la valeur la plus élevée représentée par la barre de progression
La valeur par défaut est 100.
Fonctions d'accès :
| int | maximum() const |
| void | setMaximum(int maximum) |
Voir aussi minimum et setRange().
minimum : int
Cette propriété contient la valeur la plus basse représentée par la barre de progression
La valeur par défaut est 0.
Fonctions d'accès :
| int | minimum() const |
| void | setMinimum(int minimum) |
Voir aussi maximum et setRange().
minimumDuration : int
Cette propriété indique le temps qui doit s'écouler avant que la boîte de dialogue n'apparaisse
Si la durée prévue de la tâche est inférieure à la durée minimale, la boîte de dialogue n'apparaît pas. Cela permet d'éviter que la boîte de dialogue n'apparaisse pour des tâches qui se terminent rapidement. Pour les tâches dont la durée prévue est supérieure à la durée minimale, la boîte de dialogue s'affichera après la durée minimale ou dès que des progrès auront été réalisés.
Si la valeur est fixée à 0, la boîte de dialogue s'affiche toujours dès qu'un progrès est enregistré. La valeur par défaut est de 4000 millisecondes.
Fonctions d'accès :
| int | minimumDuration() const |
| void | setMinimumDuration(int ms) |
value : int
Cette propriété contient le montant actuel des progrès réalisés.
Pour que la boîte de dialogue de progression fonctionne comme prévu, vous devez initialement définir cette propriété à QProgressDialog::minimum() et finalement la définir à QProgressDialog::maximum() ; vous pouvez appeler setValue() autant de fois que vous le souhaitez entre les deux.
Attention : Si le dialogue de progression est modal (voir QProgressDialog::QProgressDialog()), setValue() appelle QCoreApplication::processEvents(), veillez donc à ce que cela ne provoque pas de réentrance indésirable dans votre code. Par exemple, n'utilisez pas un QProgressDialog à l'intérieur d'un paintEvent() !
Fonctions d'accès :
| int | value() const |
| void | setValue(int progress) |
Voir également minimum et maximum.
[read-only] wasCanceled : bool
Cette propriété indique si le dialogue a été annulé
Fonctions d'accès :
| bool | wasCanceled() const |
Documentation des fonctions membres
[explicit] QProgressDialog::QProgressDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Construit une boîte de dialogue de progression.
Paramètres par défaut :
- Le texte de l'étiquette est vide.
- Le texte du bouton d'annulation est "Annuler".
- Le minimum est de 0 ;
- le maximum est 100
L'argument parent est le widget parent du dialogue. Les drapeaux du widget, f, sont transmis au constructeur QDialog::QDialog().
Voir aussi setLabelText(), setCancelButtonText(), setCancelButton(), setMinimum() et setMaximum().
QProgressDialog::QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Construit une boîte de dialogue de progression.
Le labelText est le texte utilisé pour rappeler à l'utilisateur ce qui est en train de se passer.
cancelButtonText est le texte à afficher sur le bouton d'annulation. Si QString() est fourni, aucun bouton d'annulation n'est affiché.
Les valeurs minimum et maximum correspondent au nombre d'étapes de l'opération pour lesquelles la boîte de dialogue de progression indique l'état d'avancement. Par exemple, si l'opération consiste à examiner 50 fichiers, la valeur minimale sera 0 et la valeur maximale sera 50. Avant d'examiner le premier fichier, appelez setValue(0). Au fur et à mesure que chaque fichier est traité, appelez setValue(1), setValue(2), etc., et appelez finalement setValue(50) après avoir examiné le dernier fichier.
L'argument parent est le widget parent de la boîte de dialogue. Le parent, parent, et les drapeaux du widget, f, sont transmis au constructeur QDialog::QDialog().
Voir aussi setLabelText(), setLabel(), setCancelButtonText(), setCancelButton(), setMinimum() et setMaximum().
[virtual noexcept] QProgressDialog::~QProgressDialog()
Détruit la boîte de dialogue de progression.
[slot] void QProgressDialog::cancel()
Réinitialise la boîte de dialogue de progression. wasCanceled() devient vrai jusqu'à ce que la boîte de dialogue de progression soit réinitialisée. La boîte de dialogue de progression devient cachée.
[signal] void QProgressDialog::canceled()
Ce signal est émis lorsque le bouton d'annulation est cliqué. Il est connecté par défaut à l'emplacement cancel().
Voir aussi wasCanceled().
[override virtual protected] void QProgressDialog::changeEvent(QEvent *ev)
Réimplémente : QWidget::changeEvent(QEvent *event).
[override virtual protected] void QProgressDialog::closeEvent(QCloseEvent *e)
Réimplémente : QDialog::closeEvent(QCloseEvent *e).
[protected slot] void QProgressDialog::forceShow()
Affiche la boîte de dialogue si elle est toujours cachée après que l'algorithme a été lancé et que minimumDuration millisecondes se sont écoulées.
Voir également setMinimumDuration().
void QProgressDialog::open(QObject *receiver, const char *member)
Ouvre la boîte de dialogue et connecte son signal canceled() à l'emplacement spécifié par receiver et member.
Le signal sera déconnecté de l'emplacement lorsque la boîte de dialogue sera fermée.
[slot] void QProgressDialog::reset()
Réinitialise la boîte de dialogue de progression. La boîte de dialogue de progression devient cachée si autoClose() est vrai.
Voir également setAutoClose() et setAutoReset().
[override virtual protected] void QProgressDialog::resizeEvent(QResizeEvent *event)
Réimplémente : QDialog::resizeEvent(QResizeEvent *).
void QProgressDialog::setBar(QProgressBar *bar)
Définit le widget de la barre de progression à bar. La boîte de dialogue de progression se redimensionne pour s'adapter. La boîte de dialogue de progression est propriétaire de la barre de progression bar qui sera supprimée le cas échéant, il ne faut donc pas utiliser une barre de progression allouée sur la pile.
void QProgressDialog::setCancelButton(QPushButton *cancelButton)
Définit le bouton d'annulation comme étant le bouton poussoir, cancelButton. La boîte de dialogue de progression est propriétaire de ce bouton qui sera supprimé si nécessaire. Ne passez donc pas l'adresse d'un objet qui se trouve sur la pile, c'est-à-dire utilisez new() pour créer le bouton. Si nullptr est passé, aucun bouton d'annulation ne sera affiché.
Voir aussi setCancelButtonText().
[slot] void QProgressDialog::setCancelButtonText(const QString &cancelButtonText)
Définit le texte du bouton d'annulation à cancelButtonText. Si le texte est défini à QString(), le bouton d'annulation sera caché et supprimé.
Voir également setCancelButton().
void QProgressDialog::setLabel(QLabel *label)
Fixe l'étiquette à label. Le dialogue de progression se redimensionne pour s'y adapter. L'étiquette devient la propriété de la boîte de dialogue de progression et sera supprimée si nécessaire. Ne passez donc pas l'adresse d'un objet sur la pile.
Voir aussi setLabelText().
[slot] void QProgressDialog::setRange(int minimum, int maximum)
Fixe les valeurs minimale et maximale de la boîte de dialogue de progression à minimum et maximum, respectivement.
Si maximum est plus petit que minimum, minimum devient la seule valeur légale.
Si la valeur actuelle se situe en dehors de la nouvelle plage, la boîte de dialogue de progression est réinitialisée avec reset().
Voir également minimum et maximum.
[override virtual protected] void QProgressDialog::showEvent(QShowEvent *e)
Réimplémente : QDialog::showEvent(QShowEvent *event).
[override virtual] QSize QProgressDialog::sizeHint() const
Réimplémente : QDialog::sizeHint() const.
Renvoie une taille correspondant au contenu de la boîte de dialogue de progression. La boîte de dialogue de progression se redimensionne elle-même si nécessaire, vous ne devriez donc pas avoir besoin d'appeler cette fonction vous-mê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.