En esta página

QInputDialog Class

La clase QInputDialog proporciona un simple diálogo de conveniencia para obtener un único valor del usuario. Más...

Cabecera: #include <QInputDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QDialog

Tipos Públicos

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

Propiedades

Funciones públicas

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

Funciones públicas reimplementadas

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

Señales

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)

Miembros públicos estáticos

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)

Descripción detallada

El valor de entrada puede ser una cadena, un número o un elemento de una lista. Debe establecerse una etiqueta para indicar al usuario lo que debe introducir.

Se proporcionan cinco funciones estáticas: getText(), getMultiLineText(), getInt(), getDouble() y getItem(). Todas las funciones pueden utilizarse de forma similar, por ejemplo:

    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 se establece en true si el usuario hace clic en OK; de lo contrario, se establece en false.

Diálogos de entrada

El ejemplo de Standard Dialogs muestra como usar QInputDialog así como otros diálogos incorporados en Qt.

Ver también QMessageBox y Ejemplo de Diálogos Estándar.

Documentación de Tipos de Miembros

enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions

Este enum especifica varias opciones que afectan al aspecto de un diálogo de entrada.

ConstanteValorDescripción
QInputDialog::NoButtons0x00000001No mostrar los botones OK y Cancel (útil para "diálogos en vivo").
QInputDialog::UseListViewForComboBoxItems0x00000002Utilice QListView en lugar de QComboBox para mostrar los elementos definidos con setComboBoxItems().
QInputDialog::UsePlainTextEditForTextInput0x00000004Utilice QPlainTextEdit para la introducción de texto multilínea. Este valor se introdujo en 5.2.

El tipo InputDialogOptions es un typedef para QFlags<InputDialogOption>. Almacena una combinación OR de valores InputDialogOption.

Ver también options, setOption(), y testOption().

enum QInputDialog::InputMode

Este enum describe los diferentes modos de entrada que se pueden seleccionar para el diálogo.

ConstanteValorDescripción
QInputDialog::TextInput0Se utiliza para introducir cadenas de texto.
QInputDialog::IntInput1Se utiliza para introducir números enteros.
QInputDialog::DoubleInput2Se utiliza para introducir números en coma flotante con doble precisión.

Véase también inputMode.

Documentación de propiedades

cancelButtonText : QString

Esta propiedad contiene el texto del botón utilizado para cancelar el diálogo

Funciones de acceso:

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

comboBoxEditable : bool

Esta propiedad indica si el cuadro combinado utilizado en el diálogo de entrada es editable o no

Funciones de acceso:

bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

comboBoxItems : QStringList

Esta propiedad contiene los elementos utilizados en el cuadro combinado del diálogo de entrada

Funciones de acceso:

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

doubleDecimals : int

fija la precisión de la spinbox doble en decimales

Funciones de acceso:

int doubleDecimals() const
void setDoubleDecimals(int decimals)

Véase también QDoubleSpinBox::setDecimals().

doubleMaximum : double

Esta propiedad contiene el valor máximo en coma flotante de doble precisión aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo DoubleInput.

Funciones de acceso:

double doubleMaximum() const
void setDoubleMaximum(double max)

doubleMinimum : double

Esta propiedad contiene el valor mínimo de coma flotante de doble precisión aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo DoubleInput.

Funciones de acceso:

double doubleMinimum() const
void setDoubleMinimum(double min)

doubleStep : double

Esta propiedad contiene el paso por el cual el valor doble se incrementa y disminuye

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo DoubleInput.

Funciones de acceso:

double doubleStep() const
void setDoubleStep(double step)

doubleValue : int

Esta propiedad contiene el valor actual de coma flotante de doble precisión aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo DoubleInput.

Funciones de acceso:

double doubleValue() const
void setDoubleValue(double value)

Señal del notificador:

void doubleValueChanged(double value)

inputMode : InputMode

Esta propiedad contiene el modo utilizado para la entrada

Esta propiedad ayuda a determinar qué widget se utiliza para introducir datos en el diálogo.

Funciones de acceso:

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

intMaximum : int

Esta propiedad contiene el valor entero máximo aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

Funciones de acceso:

int intMaximum() const
void setIntMaximum(int max)

intMinimum : int

Esta propiedad contiene el valor entero mínimo aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

Funciones de acceso:

int intMinimum() const
void setIntMinimum(int min)

intStep : int

Esta propiedad contiene el paso por el cual el valor entero se incrementa y decrementa.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

Funciones de acceso:

int intStep() const
void setIntStep(int step)

intValue : int

Esta propiedad contiene el valor entero actual aceptado como entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

Funciones de acceso:

int intValue() const
void setIntValue(int value)

Señal del notificador:

void intValueChanged(int value)

labelText : QString

Esta propiedad contiene el texto de la etiqueta que describe lo que hay que introducir.

Funciones de acceso:

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

okButtonText : QString

Esta propiedad contiene el texto del botón utilizado para aceptar la entrada en el diálogo

Funciones de acceso:

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

options : InputDialogOptions

Esta propiedad contiene las distintas opciones que afectan al aspecto del cuadro de diálogo

Por defecto, todas las opciones están desactivadas.

Funciones de acceso:

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

Véase también setOption() y testOption().

textEchoMode : QLineEdit::EchoMode

Esta propiedad contiene el modo de eco para el valor de texto

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo TextInput.

Funciones de acceso:

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

textValue : QString

Esta propiedad contiene el valor del texto para el diálogo de entrada.

Esta propiedad sólo es relevante cuando el diálogo de entrada se utiliza en modo TextInput.

Funciones de acceso:

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

Señal del notificador:

void textValueChanged(const QString &text)

Documentación de la función miembro

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

Construye un nuevo diálogo de entrada con la dirección parent y la ventana flags.

[virtual noexcept] QInputDialog::~QInputDialog()

Destruye el diálogo de entrada.

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

Reimplementa: QDialog::done(int r).

Cierra el diálogo y establece su código de resultado a result. Si este diálogo se muestra con exec(), done() hace que el bucle de eventos local termine, y exec() devuelva result.

Véase también QDialog::done().

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

Esta señal se emite cada vez que cambia el valor doble en el diálogo. El valor actual se especifica en value.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo DoubleInput.

Nota: Señal notificadora para la propiedad doubleValue.

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

Esta señal se emite siempre que el usuario selecciona un valor doble aceptando el diálogo; por ejemplo, pulsando el botón OK. El valor seleccionado se especifica en value.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo 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)

Función estática para obtener un número en coma flotante del usuario.

title es el texto que se muestra en la barra de título del cuadro de diálogo. label es el texto que se muestra al usuario (debe decir lo que se debe introducir). value es el número de coma flotante por defecto al que se ajustará la edición de línea. min y max son los valores mínimo y máximo que puede elegir el usuario. decimals es el número máximo de decimales que puede tener el número. step es la cantidad en la que cambian los valores a medida que el usuario pulsa los botones de flecha para aumentar o disminuir el valor.

Si ok no es nulo, *ok será verdadero si el usuario pulsa OK y falso si pulsa Cancel. El padre del diálogo es parent. El diálogo será modal y utiliza el widget flags.

Esta función devuelve el número en coma flotante que ha sido introducido por el usuario.

Utilice esta función estática así:

    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));

Véase también getText(), getInt(), getItem(), y 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())

Función estática para obtener una entrada entera del usuario.

title es el texto que se muestra en la barra de título del cuadro de diálogo. label es el texto que se muestra al usuario (debe decir lo que se debe introducir). value es el número entero por defecto al que se ajustará el cuadro de giro. min y max son los valores mínimo y máximo que el usuario puede elegir. step es la cantidad en la que cambian los valores a medida que el usuario pulsa los botones de flecha para aumentar o disminuir el valor.

Si ok no es nulo *ok se convertirá en verdadero si el usuario pulsa OK y en falso si pulsa Cancel. El padre del diálogo es parent. El diálogo será modal y utilizará el widget flags.

En caso de éxito, esta función devuelve el entero que ha introducido el usuario; en caso de fallo, devuelve el inicial value.

Utilice esta función estática de la siguiente manera:

    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));

Véase también getText(), getDouble(), getItem(), y 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)

Función estática que permite al usuario seleccionar un elemento de una lista de cadenas.

title es el texto que se muestra en la barra de título del cuadro de diálogo. label es el texto que se muestra al usuario (debe decir lo que se debe introducir). items es la lista de cadenas que se inserta en el cuadro combinado. current es el número del elemento que debe ser el elemento actual. inputMethodHints son las sugerencias del método de entrada que se utilizarán si el cuadro combinado es editable y hay un método de entrada activo.

Si editable es verdadero, el usuario puede introducir su propio texto; en caso contrario, el usuario sólo podrá seleccionar uno de los elementos existentes.

Si ok no es nulo, *ok será verdadero si el usuario pulsa OK y falso si pulsa Cancel. El padre del diálogo es parent. El diálogo será modal y utiliza el widget flags.

Esta función devuelve el texto del elemento actual, o si editable es verdadero, el texto actual del cuadro combinado.

Utilice esta función estática de la siguiente manera:

    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);

Véase también getText(), getInt(), getDouble(), y 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)

Función estática para obtener una cadena multilínea del usuario.

title es el texto que se muestra en la barra de título del diálogo. label es el texto que se muestra al usuario (debe decir lo que se debe introducir). text es el texto por defecto que se coloca en la edición de texto plano. inputMethodHints son las pistas del método de entrada que se utilizarán en el widget de edición si hay un método de entrada activo.

Si ok no es nulo *ok se pondrá a true si el usuario ha pulsado OK y a false si ha pulsado Cancel. El padre del diálogo es parent. El diálogo será modal y utilizará el widget especificado flags.

Si el diálogo es aceptado, esta función devuelve el texto en la edición de texto plano del diálogo. Si el diálogo es rechazado, se devuelve un QString nulo.

Utilice esta función estática de la siguiente manera:

    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);

Véase también getInt(), getDouble(), getItem(), y 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)

Función estática para obtener una cadena del usuario.

title es el texto que se muestra en la barra de título del diálogo. label es el texto que se muestra al usuario (debe decir lo que se debe introducir). text es el texto por defecto que se coloca en la edición de línea. mode es el modo de eco que utilizará la edición de línea. inputMethodHints son las pistas del método de entrada que se utilizarán en el widget de edición si hay un método de entrada activo.

Si ok no es nulo *ok se pondrá a true si el usuario pulsó OK y a false si el usuario pulsó Cancel. El padre del diálogo es parent. El diálogo será modal y utilizará el widget especificado flags.

Si el diálogo es aceptado, esta función devuelve el texto de la línea de edición del diálogo. Si el diálogo es rechazado, se devuelve un QString nulo.

Utilice esta función estática de la siguiente manera:

    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);

Véase también getInt(), getDouble(), getItem(), y getMultiLineText().

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

Esta señal se emite cada vez que cambia el valor entero en el diálogo. El valor actual se especifica en value.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

Nota: Señal notificadora para la propiedad intValue.

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

Esta señal se emite siempre que el usuario selecciona un valor entero aceptando el diálogo; por ejemplo, pulsando el botón OK. El valor seleccionado se especifica en value.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo IntInput.

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

Reimplementa: QDialog::minimumSizeHint() const.

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

Esta función conecta una de sus señales a la ranura especificada en receiver y member. La señal específica depende de los argumentos que se especifican en member. Éstos son:

La señal se desconectará de la ranura cuando se cierre el diálogo.

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

Establece el rango de valores de coma flotante de doble precisión aceptados por el diálogo cuando se utiliza en modo DoubleInput, con valores mínimo y máximo especificados por min y max respectivamente.

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

Establece el rango de valores enteros aceptados por el diálogo cuando se utiliza en modo IntInput, con valores mínimo y máximo especificados por min y max respectivamente.

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

Establece el option dado para que esté habilitado si on es verdadero; de lo contrario, borra el option dado.

Véase también options y testOption().

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

Reimplementa: QDialog::setVisible(bool visible).

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

Reimplementa: QDialog::sizeHint() const.

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

Devuelve true si el option dado está habilitado; en caso contrario, devuelve false.

Véase también options y setOption().

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

Esta señal se emite cada vez que cambia la cadena de texto en el diálogo. La cadena actual se especifica en text.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo TextInput.

Nota: Señal notificadora para la propiedad textValue.

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

Esta señal se emite siempre que el usuario selecciona una cadena de texto aceptando el diálogo; por ejemplo, pulsando el botón OK. La cadena seleccionada se especifica en text.

Esta señal sólo es relevante cuando el diálogo de entrada se utiliza en modo 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.