Sur cette page

QInputDialog Class

La classe QInputDialog fournit une boîte de dialogue simple et pratique permettant de recueillir une seule valeur auprès de l'utilisateur. En savoir plus...

En-tête : #include <QInputDialog>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : 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. Un libellé doit être défini pour indiquer à l'utilisateur ce qu'il doit saisir.

Cinq fonctions statiques pratiques sont fournies : getText(), getMultiLineText(), getInt(), getDouble() et getItem(). Toutes ces fonctions s’utilisent 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 ` est définie sur `true` si l'utilisateur clique sur ` OK` ; sinon, elle est définie sur `false`.

Boîtes de dialogue de saisie

L'exemple « Standard Dialogs » montre comment utiliser QInputDialog ainsi que d'autres boîtes de dialogue intégrées à Qt.

Voir également QMessageBox et l’exemple « Standard Dialogs ».

Documentation sur les types de membres

enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions

Cette énumération définit diverses options qui influent sur l'apparence et le comportement d'une boîte de dialogue de saisie.

ConstanteValeurDescription
QInputDialog::NoButtons0x00000001Ne pas afficher les boutons « OK » et « Cancel » (utile pour les «boîtes de dialogue en temps réel»).
QInputDialog::UseListViewForComboBoxItems0x00000002Utilise une zone de saisie ( QListView ) plutôt qu'un champ non modifiable ( QComboBox ) pour afficher les éléments définis avec la fonction 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 OR de valeurs `InputDialogOption`.

Voir également options, setOption() et testOption().

enum QInputDialog::InputMode

Cette énumération décrit les différents modes de saisie pouvant être sélectionnés pour la boîte de dialogue.

ConstanteValeurDescription
QInputDialog::TextInput0Permet de saisir des chaînes de texte.
QInputDialog::IntInput1Permet de saisir des nombres entiers.
QInputDialog::DoubleInput2Permet de saisir des nombres à virgule flottante avec une précision double.

Voir aussi inputMode.

Documentation sur les propriétés

cancelButtonText : QString

Cette propriété contient le texte du bouton permettant d'annuler la boîte de 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'Access :

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 zone de saisie « 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 de type nombre à virgule flottante en 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 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 l'incrément utilisé pour augmenter et diminuer la valeur de type double

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 à virgule flottante double précision actuellement 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é indique le mode utilisé pour la saisie

Cette propriété permet de déterminer quel widget est utilisé pour saisir 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é définit 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 l'incrément utilisé pour augmenter ou diminuer la valeur entière

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 permettant de valider 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é regroupe les différentes options qui influent sur l'apparence et le comportement 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 également setOption() et testOption().

textEchoMode : QLineEdit::EchoMode

Cette propriété définit le mode d'écho de la valeur textuelle

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

Fonctions d’accès :

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

textValue : QString

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

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

Fonctions d'accès :

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

Signal de notification :

void textValueChanged(const QString &text)

Documentation sur les fonctions membres

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

Crée une nouvelle boîte de dialogue de saisie avec l'parent et l'flags de fenêtre indiqués.

[virtual noexcept] QInputDialog::~QInputDialog()

Ferme la boîte de dialogue de saisie.

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

Réimplémentation de : ` QDialog::done(int r)`.

Ferme la boîte de dialogue et définit son code de résultat sur ` result`. Si cette boîte de dialogue est affichée à l'aide de ` exec()`, la fonction `done()` provoque la fin de la boucle d'événements locale et le retour de ` exec()` avec le code ` result`.

Voir également QDialog::done().

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

Ce signal est émis chaque fois que la valeur du champ « double » change dans la boîte de 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 ».

Remarque : signalde notification pour la propriété doubleValue.

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

Ce signal est émis chaque fois que l'utilisateur sélectionne une valeur de type double en validant 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 de saisie 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 d'aide permettant de récupérer un nombre à virgule flottante saisi par l'utilisateur.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte présenté à l’utilisateur (il doit indiquer ce qu’il faut saisir). value est le nombre à virgule flottante par défaut qui sera attribué au champ de saisie. min et max sont les valeurs minimale et maximale que l'utilisateur peut choisir. decimals correspond au nombre maximal de décimales que le nombre peut comporter. step correspond à l'incrément ou au décrément de la valeur lorsque l'utilisateur appuie sur les boutons fléchés.

Si ok n'est pas nul, *ok sera défini sur true si l'utilisateur a appuyé sur OK et sur false s'il 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 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 d'aide permettant de récupérer une valeur entière saisie par l'utilisateur.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte présenté à l’utilisateur (il doit indiquer ce qu’il faut saisir). value est la valeur entière par défaut à laquelle la zone de sélection sera réglée. min et max sont les valeurs minimale et maximale que l’utilisateur peut choisir. step correspond à l’incrément ou au décrément de la valeur lorsque l’utilisateur appuie sur les boutons fléchés pour augmenter ou diminuer la valeur.

Si ok est non nul, *ok sera défini sur true si l'utilisateur a cliqué sur OK et sur false s'il a cliqué 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 réussite, cette fonction renvoie l’entier 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 également 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 pratique 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 présenté à l'utilisateur (il doit indiquer ce qui doit être saisi). items est la liste de chaînes qui est insérée dans la liste déroulante. current est le numéro de l'élément qui doit être sélectionné par défaut. inputMethodHints correspond aux conseils de méthode de saisie qui seront utilisés 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 qu'un des éléments existants.

Si ok est non nul, *ok sera défini sur true si l’utilisateur a appuyé sur OK et sur false s’il 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 actuel ou, si editable est vrai, le texte actuel 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 également 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 d'aide permettant de récupérer une chaîne de caractères multiligne saisie par l'utilisateur.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte présenté à l’utilisateur (il doit indiquer ce qu’il faut saisir). text est le texte par défaut placé dans le champ d’édition de texte brut. inputMethodHints correspond aux indications relatives à la méthode de saisie qui seront utilisées dans le widget d’édition si une méthode de saisie est active.

Si ok est non nul , *ok sera défini sur true si l’utilisateur a cliqué sur OK et sur false s’il a cliqué 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 contenu dans le champ d’édition de texte brut de la boîte de dialogue. Si la boîte de dialogue est rejetée, une valeur nulle QString est renvoyée.

Utilisez cette fonction statique comme suit :

    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 d'utilité permettant de récupérer une chaîne de caractères auprès de l'utilisateur.

title est le texte affiché dans la barre de titre de la boîte de dialogue. label est le texte présenté à l'utilisateur (il doit indiquer ce qu'il faut saisir). text est le texte par défaut qui s’affiche dans la zone de saisie. mode correspond au mode d’affichage que la zone de saisie utilisera. inputMethodHints correspond aux conseils relatifs à la méthode de saisie qui s’afficheront dans la zone de saisie si une méthode de saisie est active.

Si ok n’est pas nul, *ok sera défini sur true si l’utilisateur a cliqué sur OK et sur false s’il a cliqué 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 contenu dans le champ de saisie de la boîte de dialogue. Si la boîte de dialogue est rejetée, une valeur nulle QString est renvoyée.

Utilisez cette fonction statique comme suit :

    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 la boîte de 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 « IntInput ».

Remarque : signalde notification pour la propriété intValue.

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

Ce signal est émis chaque fois que l'utilisateur sélectionne une valeur entière en validant 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 de saisie 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 relie l'un de ses signaux à l'emplacement spécifié par receiver et member. Le signal concerné dépend des arguments spécifiés dans member. Il s'agit des éléments suivants :

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

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

Définit la plage des valeurs à virgule flottante en double précision acceptées par la boîte de dialogue lorsqu'elle est utilisée en mode « DoubleInput », les valeurs minimale et maximale étant respectivement spécifiées par min et max.

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

Définit la plage de valeurs entières acceptées par la boîte de dialogue lorsqu'elle est utilisée en mode « IntInput », les valeurs minimale et maximale étant respectivement spécifiées par min et max.

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

Active l'option spécifiée si la valeur de on est « true » ; dans le cas contraire, désactive l'option spécifiée.

Voir également 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 l'option spécifiée est activée ; sinon, renvoie « false ».

Voir également options et setOption().

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

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

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

Remarque : signalde notification pour la propriété textValue.

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

Ce signal est émis chaque fois que l'utilisateur sélectionne une chaîne de texte en validant la boîte de dialogue ; par exemple, en cliquant sur le bouton « OK ». La chaîne sélectionnée est indiquée par text.

Ce signal n'est pertinent que lorsque la boîte de dialogue de saisie 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.