QProgressDialog Class
La classe QProgressDialog permet d'afficher des informations sur la progression d'une opération longue. En savoir plus...
| En-tête : | #include <QProgressDialog> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | QDialog |
- Liste de tous les membres, y compris les membres hérités
- QProgressDialog fait partie des boîtes de dialogue standard.
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 |
Slots 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 |
Slots protégés
| void | forceShow() |
Description détaillée
Une boîte de dialogue de progression sert à indiquer à l'utilisateur la durée estimée d'une opération et à lui montrer que l'application n'est pas bloquée. Elle permet également à l'utilisateur 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 apporte une solution à ce problème : il estime la durée de l’opération (en fonction du temps nécessaire à chaque étape) et ne s’affiche que si cette estimation dépasse la valeur de minimumDuration() (4 secondes par défaut).
Utilisez setMinimum() et setMaximum() ou le constructeur pour définir le nombre d’« étapes » de l’opération, puis appelez setValue() au fur et à mesure que l’opération progresse. Le nombre d’étapes peut être choisi librement. 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 de toute 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() en lui passant comme argument la valeur définie par setMaximum().
La boîte de dialogue se réinitialise automatiquement et se masque à la fin de l’opération. Utilisez setAutoReset() et setAutoClose() pour modifier ce comportement. Notez que si vous définissez une nouvelle valeur maximale (à l’aide de setMaximum() ou setRange()) égale à votre value() actuel, la boîte de dialogue ne se fermera pas dans tous les cas.
Il existe deux façons d’utiliser QProgressDialog : en mode modal et en mode non modal.
Comparé à un QProgressDialog non modal, 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 s’il y a 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 non modale convient aux opérations qui se déroulent en arrière-plan, pendant lesquelles l'utilisateur peut interagir avec l'application. Ces opérations s'appuient généralement sur une classe de temporisation, telle que ` QChronoTimer ` (ou les fonctions de plus bas niveau ` QObject::timerEvent()`) ou ` QSocketNotifier` ; elles peuvent également être exécutées dans un thread distinct. L’affichage d’un indicateur de progression ( QProgressBar ) dans la barre d’état de votre fenêtre principale constitue souvent une alternative à une boîte de dialogue de progression non modale.
Vous devez disposer d’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 :
// 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, la boîte de dialogue de progression peut être personnalisée en remplaçant les widgets enfants par des widgets personnalisés à l’aide de 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 la méthode ` 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 la boîte de dialogue de progression appelle la méthode ` 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 maximale 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 également 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 également maximum et setRange().
minimumDuration : int
Cette propriété définit le délai qui doit s'écouler avant l'affichage de la boîte de dialogue
Si la durée prévue de la tâche est inférieure à la valeur minimumDuration, la boîte de dialogue n'apparaîtra pas. Cela évite que la boîte de dialogue ne s'affiche pour les tâches qui se terminent rapidement. Pour les tâches dont la durée devrait dépasser la valeur minimumDuration, la boîte de dialogue s'affichera après l'expiration de ce délai ou dès qu'une progression sera indiquée.
Si la valeur est définie sur 0, la boîte de dialogue s'affiche systématiquement dès qu'une progression est enregistrée. La valeur par défaut est de 4 000 millisecondes.
Fonctions d'accès :
| int | minimumDuration() const |
| void | setMinimumDuration(int ms) |
value : int
Cette propriété contient la valeur actuelle de la progression.
Pour que la boîte de dialogue de progression fonctionne comme prévu, vous devez initialement définir cette propriété sur QProgressDialog::minimum() et la définir finalement sur QProgressDialog::maximum() ; vous pouvez appeler setValue() autant de fois que vous le souhaitez entre ces deux étapes.
Avertissement : si la boîte de dialogue de progression est modale (voir QProgressDialog::QProgressDialog()), la méthode 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 une méthode QProgressDialog à l'intérieur d'une méthode 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 la boîte de dialogue a été annulée
Fonctions d'accès :
| bool | wasCanceled() const |
Documentation sur les fonctions membres
[explicit] QProgressDialog::QProgressDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Affiche une boîte de dialogue de progression.
Paramètres par défaut :
- Le texte de l'étiquette est vide.
- Le texte du bouton « Annuler » est « Annuler » (traduit).
- La valeur minimale est 0 ;
- maximum est 100
L'argument ` parent ` correspond au widget parent de la boîte de dialogue. Les indicateurs du widget, ` f`, sont transmis au constructeur ` QDialog::QDialog()`.
Voir également 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())
Affiche une boîte de dialogue de progression.
labelText correspond au texte utilisé pour indiquer à l'utilisateur l'état d'avancement de l'opération.
cancelButtonText est le texte à afficher sur le bouton d’annulation. Si QString() est passé, aucun bouton d’annulation n’est affiché.
Les paramètres « minimum » et « maximum » correspondent respectivement au nombre de pas de l’opération pour laquelle cette boîte de dialogue de progression affiche la progression. Par exemple, si l’opération consiste à analyser 50 fichiers, la valeur minimale de ce paramètre serait 0 et la valeur maximale 50. Avant d’analyser le premier fichier, appelez setValue(0). Au fur et à mesure que chaque fichier est traité, appelez setValue(0), setValue(2), etc., puis appelez enfin setValue(50) après avoir examiné le dernier fichier.
L'argument parent correspond au widget parent de la boîte de dialogue. Le parent, parent, et les indicateurs de widget, f, sont transmis au constructeur QDialog::QDialog().
Voir également setLabelText(), setLabel(), setCancelButtonText(), setCancelButton(), setMinimum() et setMaximum().
[virtual noexcept] QProgressDialog::~QProgressDialog()
Ferme la boîte de dialogue de progression.
[slot] void QProgressDialog::cancel()
Réinitialise la boîte de dialogue de progression. La méthode ` wasCanceled()` renvoie `true` jusqu’à ce que la boîte de dialogue de progression soit réinitialisée. La boîte de dialogue de progression est masquée.
[signal] void QProgressDialog::canceled()
Ce signal est émis lorsque l'on clique sur le bouton « Annuler ». Il est associé par défaut au slot cancel().
Voir également 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 celle-ci est toujours masquée après le lancement de l'algorithme et au bout de minimumDuration millisecondes.
Voir également setMinimumDuration().
void QProgressDialog::open(QObject *receiver, const char *member)
Ouvre la boîte de dialogue et relie son signal « canceled() » au slot spécifié par « receiver » et « member ».
Le signal sera déconnecté du slot lorsque la boîte de dialogue sera fermée.
[slot] void QProgressDialog::reset()
Réinitialise la boîte de dialogue de progression. Celle-ci est masquée si la valeur de autoClose() est « true ».
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 sur « bar ». La boîte de dialogue de progression s'adapte automatiquement à la taille de l'écran. La boîte de dialogue de progression prend en charge l'bar de la barre de progression, qui sera supprimée le moment venu ; il ne faut donc pas utiliser une barre de progression allouée sur la pile.
void QProgressDialog::setCancelButton(QPushButton *cancelButton)
Attribue le bouton « Annuler » au bouton cancelButton. La boîte de dialogue de progression prend en charge ce bouton, qui sera supprimé le moment venu ; veillez donc à ne pas passer l'adresse d'un objet situé sur la pile, c'est-à-dire à utiliser la fonction new() pour créer le bouton. Si l'on passe la valeur « nullptr », aucun bouton « Annuler » ne s'affichera.
Voir également setCancelButtonText().
[slot] void QProgressDialog::setCancelButtonText(const QString &cancelButtonText)
Définit le texte du bouton « Annuler » sur « cancelButtonText ». Si le texte est défini sur QString(), le bouton « Annuler » sera masqué et supprimé.
Voir aussi setCancelButton().
void QProgressDialog::setLabel(QLabel *label)
Définit le libellé sur « label ». La boîte de dialogue de progression s'adapte automatiquement à la taille du texte. Le libellé devient la propriété de la boîte de dialogue de progression et sera supprimé si nécessaire ; veillez donc à ne pas transmettre l'adresse d'un objet situé sur la pile.
Voir aussi setLabelText().
[slot] void QProgressDialog::setRange(int minimum, int maximum)
Définit les valeurs minimale et maximale de la boîte de dialogue de progression respectivement sur minimum et maximum.
Si maximum est inférieur à minimum, minimum devient la seule valeur valide.
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 adaptée au contenu de la boîte de dialogue de progression. La boîte de dialogue de progression s'ajuste automatiquement selon les besoins ; 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.