Sur cette page

QInputDialog Class

La classe QInputDialog fournit un dialogue de commodité simple pour obtenir une valeur unique de l'utilisateur. Plus d'informations...

En-tête : #include <QInputDialog>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : QDialog

Types publics

enum InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput }
flags InputDialogOptions
enum InputMode { TextInput, IntInput, DoubleInput }

Propriétés

Fonctions publiques

QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
virtual ~QInputDialog()
QString cancelButtonText() const
QStringList comboBoxItems() const
int doubleDecimals() const
double doubleMaximum() const
double doubleMinimum() const
double doubleStep() const
double doubleValue() const
QInputDialog::InputMode inputMode() const
int intMaximum() const
int intMinimum() const
int intStep() const
int intValue() const
bool isComboBoxEditable() const
QString labelText() const
QString okButtonText() const
void open(QObject *receiver, const char *member)
QInputDialog::InputDialogOptions options() const
void setCancelButtonText(const QString &text)
void setComboBoxEditable(bool editable)
void setComboBoxItems(const QStringList &items)
void setDoubleDecimals(int decimals)
void setDoubleMaximum(double max)
void setDoubleMinimum(double min)
void setDoubleRange(double min, double max)
void setDoubleStep(double step)
void setDoubleValue(double value)
void setInputMode(QInputDialog::InputMode mode)
void setIntMaximum(int max)
void setIntMinimum(int min)
void setIntRange(int min, int max)
void setIntStep(int step)
void setIntValue(int value)
void setLabelText(const QString &text)
void setOkButtonText(const QString &text)
void setOption(QInputDialog::InputDialogOption option, bool on = true)
void setOptions(QInputDialog::InputDialogOptions options)
void setTextEchoMode(QLineEdit::EchoMode mode)
void setTextValue(const QString &text)
bool testOption(QInputDialog::InputDialogOption option) const
QLineEdit::EchoMode textEchoMode() const
QString textValue() const

Fonctions publiques réimplémentées

virtual void done(int result) override
virtual QSize minimumSizeHint() const override
virtual void setVisible(bool visible) override
virtual QSize sizeHint() const override

Signaux

void doubleValueChanged(double value)
void doubleValueSelected(double value)
void intValueChanged(int value)
void intValueSelected(int value)
void textValueChanged(const QString &text)
void textValueSelected(const QString &text)

Membres publics statiques

double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)
int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
QString getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

Description détaillée

La valeur d'entrée peut être une chaîne de caractères, un nombre ou un élément d'une liste. Une étiquette doit être définie pour indiquer à l'utilisateur ce qu'il doit saisir.

Cinq fonctions statiques de commodité sont fournies : getText(), getMultiLineText(), getInt(), getDouble() et getItem(). Toutes les fonctions peuvent être utilisées de la même manière, par exemple :

    bool ok{};
    QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                         tr("User name:"), QLineEdit::Normal,
                                         QDir::home().dirName(), &ok);
    if (ok && !text.isEmpty())
        textLabel->setText(text);

La variable ok prend la valeur true si l'utilisateur clique sur OK; sinon, elle prend la valeur false.

Dialogues de saisie

L'exemple des dialogues standard montre comment utiliser QInputDialog ainsi que d'autres dialogues intégrés à Qt.

Voir aussi QMessageBox et Exemple de dialogue standard.

Documentation des types de membres

enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions

Cette énumération spécifie diverses options qui affectent l'aspect et la convivialité d'une boîte de dialogue de saisie.

ConstanteValeurDescription
QInputDialog::NoButtons0x00000001Ne pas afficher les boutons OK et Cancel (utile pour les "dialogues en direct").
QInputDialog::UseListViewForComboBoxItems0x00000002Utiliser un QListView plutôt qu'un QComboBox non modifiable pour afficher les éléments définis avec setComboBoxItems().
QInputDialog::UsePlainTextEditForTextInput0x00000004Utilisez un QPlainTextEdit pour la saisie de texte multiligne. Cette valeur a été introduite dans la version 5.2.

Le type InputDialogOptions est un typedef pour QFlags<InputDialogOption>. Il stocke une combinaison OU de valeurs InputDialogOption.

Voir aussi options, setOption(), et testOption().

enum QInputDialog::InputMode

Cette énumération décrit les différents modes de saisie qui peuvent être sélectionnés pour le dialogue.

ConstanteValeurDescription
QInputDialog::TextInput0Utilisé pour saisir des chaînes de texte.
QInputDialog::IntInput1Utilisé pour saisir des nombres entiers.
QInputDialog::DoubleInput2Utilisée pour saisir des nombres à virgule flottante avec une précision double.

Voir également inputMode.

Documentation sur les propriétés

cancelButtonText : QString

Cette propriété contient le texte du bouton utilisé pour annuler le dialogue

Fonctions d'accès :

QString cancelButtonText() const
void setCancelButtonText(const QString &text)

comboBoxEditable : bool

Cette propriété indique si la liste déroulante utilisée dans la boîte de dialogue de saisie est modifiable ou non.

Fonctions d'accès :

bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

comboBoxItems : QStringList

Cette propriété contient les éléments utilisés dans la liste déroulante de la boîte de dialogue de saisie

Fonctions d'accès :

QStringList comboBoxItems() const
void setComboBoxItems(const QStringList &items)

doubleDecimals : int

définit la précision de la spinbox double en décimales

Fonctions d'accès :

int doubleDecimals() const
void setDoubleDecimals(int decimals)

Voir aussi QDoubleSpinBox::setDecimals().

doubleMaximum : double

Cette propriété contient la valeur maximale en virgule flottante double précision acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode DoubleInput.

Fonctions d'accès :

double doubleMaximum() const
void setDoubleMaximum(double max)

doubleMinimum : double

Cette propriété contient la valeur minimale en virgule flottante de double précision acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode DoubleInput.

Fonctions d'accès :

double doubleMinimum() const
void setDoubleMinimum(double min)

doubleStep : double

Cette propriété définit le pas par lequel la valeur double est augmentée et diminuée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode DoubleInput.

Fonctions d'accès :

double doubleStep() const
void setDoubleStep(double step)

doubleValue : int

Cette propriété contient la valeur courante de double précision en virgule flottante acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode DoubleInput.

Fonctions d'accès :

double doubleValue() const
void setDoubleValue(double value)

Signal de notification :

void doubleValueChanged(double value)

inputMode : InputMode

Cette propriété définit le mode utilisé pour la saisie

Cette propriété permet de déterminer le widget utilisé pour la saisie des données dans la boîte de dialogue.

Fonctions d'accès :

QInputDialog::InputMode inputMode() const
void setInputMode(QInputDialog::InputMode mode)

intMaximum : int

Cette propriété contient la valeur entière maximale acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode IntInput.

Fonctions d'accès :

int intMaximum() const
void setIntMaximum(int max)

intMinimum : int

Cette propriété contient la valeur entière minimale acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode IntInput.

Fonctions d'accès :

int intMinimum() const
void setIntMinimum(int min)

intStep : int

Cette propriété définit le pas par lequel la valeur entière est augmentée et diminuée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode IntInput.

Fonctions d'accès :

int intStep() const
void setIntStep(int step)

intValue : int

Cette propriété contient la valeur entière actuelle acceptée en entrée

Cette propriété n'est pertinente que lorsque la boîte de dialogue de saisie est utilisée en mode IntInput.

Fonctions d'accès :

int intValue() const
void setIntValue(int value)

Signal de notification :

void intValueChanged(int value)

labelText : QString

Cette propriété contient le texte de l'étiquette qui décrit ce qui doit être saisi.

Fonctions d'accès :

QString labelText() const
void setLabelText(const QString &text)

okButtonText : QString

Cette propriété contient le texte du bouton utilisé pour accepter la saisie dans la boîte de dialogue

Fonctions d'accès :

QString okButtonText() const
void setOkButtonText(const QString &text)

options : InputDialogOptions

Cette propriété contient les différentes options qui affectent l'aspect et la convivialité de la boîte de dialogue

Par défaut, toutes les options sont désactivées.

Fonctions d'accès :

QInputDialog::InputDialogOptions options() const
void setOptions(QInputDialog::InputDialogOptions options)

Voir aussi setOption() et testOption().

textEchoMode : QLineEdit::EchoMode

Cette propriété définit le mode d'écho pour la valeur du texte

Cette propriété n'est pertinente que lorsque le dialogue de saisie est utilisé en mode TextInput.

Fonctions d'accès :

QLineEdit::EchoMode textEchoMode() const
void setTextEchoMode(QLineEdit::EchoMode mode)

textValue : QString

Cette propriété contient la valeur du texte de la boîte de dialogue de saisie

Cette propriété n'est pertinente que lorsque le dialogue de saisie est utilisé en mode TextInput.

Fonctions d'accès :

QString textValue() const
void setTextValue(const QString &text)

Signal Notificateur :

void textValueChanged(const QString &text)

Member Function Documentation

QInputDialog::QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Construit une nouvelle boîte de dialogue de saisie avec l'adresse parent et la fenêtre flags.

[virtual noexcept] QInputDialog::~QInputDialog()

Détruit le dialogue de saisie.

[override virtual] void QInputDialog::done(int result)

Réimplémente : QDialog::done(int r).

Ferme la boîte de dialogue et fixe son code de résultat à result. Si cette boîte de dialogue est affichée avec exec(), done() entraîne la fin de la boucle d'événement locale et exec() renvoie result.

Voir également QDialog::done().

[signal] void QInputDialog::doubleValueChanged(double value)

Ce signal est émis lorsque la valeur double change dans le dialogue. La valeur actuelle est spécifiée par value.

Ce signal n'est pertinent que lorsque la boîte de dialogue de saisie est utilisée en mode DoubleInput.

Note : Signal de notification pour la propriété doubleValue.

[signal] void QInputDialog::doubleValueSelected(double value)

Ce signal est émis lorsque l'utilisateur sélectionne une valeur double en acceptant la boîte de dialogue, par exemple en cliquant sur le bouton OK. La valeur sélectionnée est spécifiée par value.

Ce signal n'est pertinent que lorsque la boîte de dialogue est utilisée en mode DoubleInput.

[static] double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)

Fonction statique de commodité pour obtenir un nombre à virgule flottante de l'utilisateur.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte affiché à l'utilisateur (il doit indiquer ce qui doit être saisi). value est le nombre à virgule flottante par défaut sur lequel l'édition de ligne sera réglée. min et max sont les valeurs minimale et maximale que l'utilisateur peut choisir. decimals est le nombre maximal de décimales que le nombre peut avoir. step est le montant par lequel les valeurs changent lorsque l'utilisateur appuie sur les boutons fléchés pour incrémenter ou décrémenter la valeur.

Si ok n'est pas nul, *ok sera défini comme vrai si l'utilisateur a appuyé sur OK et comme faux si l'utilisateur a appuyé sur Cancel. Le parent de la boîte de dialogue est parent. La boîte de dialogue sera modale et utilisera le widget flags.

Cette fonction renvoie le nombre à virgule flottante qui a été saisi par l'utilisateur.

Utilisez cette fonction statique comme suit :

    bool ok{};
    double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
                                       tr("Amount:"), 37.56, -10000, 10000, 2, &ok,
                                       Qt::WindowFlags(), 1);
    if (ok)
        doubleLabel->setText(QStringLiteral("$%1").arg(d));

Voir également getText(), getInt(), getItem() et getMultiLineText().

[static] int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Fonction statique de commodité permettant à l'utilisateur de saisir un nombre entier.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte affiché à l'utilisateur (il doit indiquer ce qui doit être saisi). value est l'entier par défaut sur lequel la boîte de dialogue sera réglée. min et max sont les valeurs minimale et maximale que l'utilisateur peut choisir. step est le montant par lequel les valeurs changent lorsque l'utilisateur appuie sur les boutons fléchés pour incrémenter ou décrémenter la valeur.

Si ok n'est pas nul *ok sera défini comme vrai si l'utilisateur a appuyé sur OK et comme faux si l'utilisateur a appuyé sur Cancel. Le parent de la boîte de dialogue est parent. La boîte de dialogue sera modale et utilisera le widget flags.

En cas de succès, cette fonction renvoie l'entier qui a été saisi par l'utilisateur ; en cas d'échec, elle renvoie la valeur initiale value.

Utilisez cette fonction statique comme suit :

    bool ok;
    int i = QInputDialog::getInt(this, tr("QInputDialog::getInt()"),
                                 tr("Percentage:"), 25, 0, 100, 1, &ok);
    if (ok)
        integerLabel->setText(tr("%1%").arg(i));

Voir aussi getText(), getDouble(), getItem() et getMultiLineText().

[static] QString QInputDialog::getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

Fonction statique de commodité permettant à l'utilisateur de sélectionner un élément dans une liste de chaînes de caractères.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte affiché à l'utilisateur (il doit indiquer ce qui doit être saisi). items est la liste de chaînes insérée dans la liste déroulante. current est le numéro de l'élément qui doit être l'élément courant. inputMethodHints est l'indication de la méthode de saisie qui sera utilisée si la liste déroulante est modifiable et qu'une méthode de saisie est active.

Si editable est vrai, l'utilisateur peut saisir son propre texte ; sinon, il ne peut sélectionner que l'un des éléments existants.

Si ok n'est pas nul, *ok sera défini comme vrai si l'utilisateur a appuyé sur OK et comme faux si l'utilisateur a appuyé sur Cancel. Le parent de la boîte de dialogue est parent. La boîte de dialogue sera modale et utilisera le widget flags.

Cette fonction renvoie le texte de l'élément courant ou, si editable est vrai, le texte courant de la liste déroulante.

Utilisez cette fonction statique comme suit :

    const QStringList items{tr("Spring"), tr("Summer"), tr("Fall"), tr("Winter")};

    bool ok{};
    QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),
                                         tr("Season:"), items, 0, false, &ok);
    if (ok && !item.isEmpty())
        itemLabel->setText(item);

Voir aussi getText(), getInt(), getDouble() et getMultiLineText().

[static] QString QInputDialog::getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

Fonction statique de commodité permettant d'obtenir une chaîne de caractères multilignes de la part de l'utilisateur.

title *ok est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte affiché à l'utilisateur (il doit indiquer ce qui doit être saisi). text est le texte par défaut qui est placé dans l'édition de texte brut. inputMethodHints est l'indice de la méthode d'entrée qui sera utilisée dans le widget d'édition si une méthode d'entrée est active.

Si ok n'est pas nul, *ok sera défini comme vrai si l'utilisateur a appuyé sur OK et comme faux si l'utilisateur a appuyé sur Cancel. Le parent de la boîte de dialogue est parent. La boîte de dialogue sera modale et utilisera le widget spécifié flags.

Si la boîte de dialogue est acceptée, cette fonction renvoie le texte de l'édition en texte brut de la boîte de dialogue. Si la boîte de dialogue est rejetée, elle renvoie une adresse QString nulle.

Utilisez cette fonction statique comme ceci :

    bool ok{};
    QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"),
                                                  tr("Address:"), "John Doe\nFreedom Street"_L1, &ok);
    if (ok && !text.isEmpty())
        multiLineTextLabel->setText(text);

Voir également getInt(), getDouble(), getItem() et getText().

[static] QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

Fonction statique de commodité pour obtenir une chaîne de caractères de l'utilisateur.

title *ok est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte affiché à l'utilisateur (il doit indiquer ce qui doit être saisi). text est le texte par défaut placé dans l'éditeur de ligne. mode est le mode écho utilisé par l'éditeur de ligne. inputMethodHints est l'indice de la méthode d'entrée utilisée dans le widget d'édition si une méthode d'entrée est active.

Si ok n'est pas nul, *ok sera défini comme vrai si l'utilisateur a appuyé sur OK et comme faux si l'utilisateur a appuyé sur Cancel. Le parent de la boîte de dialogue est parent. La boîte de dialogue sera modale et utilisera le widget spécifié flags.

Si la boîte de dialogue est acceptée, cette fonction renvoie le texte dans la ligne d'édition de la boîte de dialogue. Si la boîte de dialogue est rejetée, elle renvoie une adresse QString nulle.

Utilisez cette fonction statique comme ceci :

    bool ok{};
    QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                         tr("User name:"), QLineEdit::Normal,
                                         QDir::home().dirName(), &ok);
    if (ok && !text.isEmpty())
        textLabel->setText(text);

Voir également getInt(), getDouble(), getItem() et getMultiLineText().

[signal] void QInputDialog::intValueChanged(int value)

Ce signal est émis chaque fois que la valeur entière change dans le dialogue. La valeur courante est spécifiée par value.

Ce signal n'est pertinent que lorsque la boîte de dialogue de saisie est utilisée en mode IntInput.

Note : Signal de notification pour la propriété intValue.

[signal] void QInputDialog::intValueSelected(int value)

Ce signal est émis lorsque l'utilisateur sélectionne une valeur entière en acceptant la boîte de dialogue, par exemple en cliquant sur le bouton OK. La valeur sélectionnée est spécifiée par value.

Ce signal n'est pertinent que lorsque la boîte de dialogue est utilisée en mode IntInput.

[override virtual] QSize QInputDialog::minimumSizeHint() const

Réimplémente : QDialog::minimumSizeHint() const.

void QInputDialog::open(QObject *receiver, const char *member)

Cette fonction connecte l'un de ses signaux à l'emplacement spécifié par receiver et member. Le signal spécifique dépend des arguments spécifiés dans member. Ces arguments sont les suivants

Le signal sera déconnecté de la fente lorsque la boîte de dialogue sera fermée.

void QInputDialog::setDoubleRange(double min, double max)

Définit la plage de valeurs en virgule flottante de double précision acceptées par le dialogue lorsqu'il est utilisé en mode DoubleInput, avec des valeurs minimales et maximales spécifiées respectivement par min et max.

void QInputDialog::setIntRange(int min, int max)

Définit la plage de valeurs entières acceptées par le dialogue lorsqu'il est utilisé en mode IntInput, les valeurs minimales et maximales étant respectivement spécifiées par min et max.

void QInputDialog::setOption(QInputDialog::InputDialogOption option, bool on = true)

Définit le site option comme étant activé si on est vrai ; sinon, efface le site option.

Voir aussi options et testOption().

[override virtual] void QInputDialog::setVisible(bool visible)

Réimplémente : QDialog::setVisible(bool visible).

[override virtual] QSize QInputDialog::sizeHint() const

Réimplémente : QDialog::sizeHint() const.

bool QInputDialog::testOption(QInputDialog::InputDialogOption option) const

Renvoie true si le site option est activé ; sinon, renvoie false.

Voir aussi options et setOption().

[signal] void QInputDialog::textValueChanged(const QString &text)

Ce signal est émis lorsque la chaîne de texte change dans la boîte de dialogue. La chaîne de texte actuelle est spécifiée par text.

Ce signal n'est pertinent que lorsque la boîte de dialogue est utilisée en mode TextInput.

Note : Signal de notification pour la propriété textValue.

[signal] void QInputDialog::textValueSelected(const QString &text)

Ce signal est émis lorsque l'utilisateur sélectionne une chaîne de texte en acceptant la boîte de dialogue, par exemple en cliquant sur le bouton OK. La chaîne sélectionnée est spécifiée par text.

Ce signal n'est pertinent que lorsque la boîte de dialogue est utilisée en mode TextInput.

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