Класс QInputDialog
Класс QInputDialog предоставляет простой диалог для получения одного значения от пользователя. Подробнее...
| Заголовок: | #include <QInputDialog> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QDialog |
Типы
| Перечисление | InputDialogOption { НетКнопок, ИспользоватьListViewДляComboBoxItems, ИспользоватьPlainTextEditДляTextInput } |
| Флаги | InputDialogOptions |
| Перечисление | InputMode { ТекстовыйВвод, ЦелочисленныйВвод, ВещественныйВвод } |
Свойства
|
|
Открытые функции
| 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 |
Реализованные публичные функции
| virtual void | done(int result) override |
| virtual QSize | minimumSizeHint() const override |
| virtual void | setVisible(bool visible) override |
| virtual QSize | sizeHint() const override |
Сигналы
| 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) |
Статические публичные члены
| 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) |
Подробное описание
Значение ввода может быть строкой, числом или элементом из списка. Необходимо задать метку, чтобы пользователь понял, что требуется ввести.
Предоставляются пять статических функций-утилит: getText(), getMultiLineText(), getInt(), getDouble() и getItem(). Все функции можно использовать аналогичным образом, например:
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); Переменная ok устанавливается в значение true, если пользователь нажимает кнопку ОК; в противном случае она устанавливается в значение false.
Пример стандартных диалогов демонстрирует использование QInputDialog, а также других встроенных диалогов Qt.
См. также QMessageBox и Пример стандартных диалогов.
Документация типов членов
перечисление QInputDialog::InputDialogOptionфлаги QInputDialog::InputDialogOptions
Это перечисление определяет различные параметры, влияющие на внешний вид диалогового окна ввода.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::NoButtons |
0x00000001 |
Не отображать кнопки ОК и Отмена (полезно для «динамических диалогов»). |
QInputDialog::UseListViewForComboBoxItems |
0x00000002 |
Использовать QListView вместо нередактируемого QComboBox для отображения элементов, заданных с помощью setComboBoxItems(). |
QInputDialog::UsePlainTextEditForTextInput |
0x00000004 |
Использовать QPlainTextEdit для ввода многострочного текста. Эта опция была добавлена в 5.2. |
Тип InputDialogOptions является псевдонимом для QFlags<InputDialogOption>. Он хранит логическое ИЛИ сочетание значений InputDialogOption.
См. также options, setOption() и testOption().
перечисление QInputDialog::InputMode
Это перечисление описывает различные режимы ввода, которые можно выбрать для диалогового окна.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::TextInput |
0 |
Используется для ввода текстовых строк. |
QInputDialog::IntInput |
1 |
Используется для ввода целых чисел. |
QInputDialog::DoubleInput |
2 |
Используется для ввода чисел с плавающей запятой с двойной точностью. |
См. также inputMode.
Документация свойств
cancelButtonText : QString
Это свойство содержит текст для кнопки отмены диалогового окна.
Функции доступа:
| QString | cancelButtonText() const |
| void | setCancelButtonText(const QString &text) |
comboBoxEditable : bool
Это свойство указывает, является ли раскрывающийся список в диалоговом окне ввода редактируемым.
Функции доступа:
| bool | isComboBoxEditable() const |
| void | setComboBoxEditable(bool editable) |
comboBoxItems : QStringList
Это свойство содержит элементы, используемые в раскрывающемся списке диалогового окна ввода.
Функции доступа:
| QStringList | comboBoxItems() const |
| void | setComboBoxItems(const QStringList &items) |
doubleDecimals : int
Устанавливает точность поля ввода вещественного числа в десятичных знаках.
Функции доступа:
| int | doubleDecimals() const |
| void | setDoubleDecimals(int decimals) |
См. также QDoubleSpinBox::setDecimals().
doubleMaximum : double
Это свойство содержит максимальное значение с двойной точностью, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме DoubleInput.
Функции доступа:
| double | doubleMaximum() const |
| void | setDoubleMaximum(double max) |
doubleMinimum : double
Это свойство содержит минимальное значение с двойной точностью, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме DoubleInput.
Функции доступа:
| double | doubleMinimum() const |
| void | setDoubleMinimum(double min) |
[since 5.10] doubleStep : double
Это свойство содержит шаг, с которым значение с плавающей точкой увеличивается и уменьшается.
Это свойство актуально только при использовании диалогового окна ввода в режиме DoubleInput.
Это свойство было добавлено в Qt 5.10.
Функции доступа:
| double | doubleStep() const |
| void | setDoubleStep(double step) |
doubleValue : int
Это свойство содержит текущее значение с двойной точностью, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме DoubleInput.
Функции доступа:
| double | doubleValue() const |
| void | setDoubleValue(double value) |
Сигнал уведомления:
| void | doubleValueChanged(double value) |
inputMode : InputMode
Это свойство содержит режим, используемый для ввода.
Это свойство помогает определить, какой виджет используется для ввода данных в диалоговое окно.
Функции доступа:
| QInputDialog::InputMode | inputMode() const |
| void | setInputMode(QInputDialog::InputMode mode) |
intMaximum : int
Это свойство содержит максимальное целое значение, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме IntInput.
Функции доступа:
| int | intMaximum() const |
| void | setIntMaximum(int max) |
intMinimum : int
Это свойство содержит минимальное целое значение, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме IntInput.
Функции доступа:
| int | intMinimum() const |
| void | setIntMinimum(int min) |
intStep : int
Это свойство содержит шаг, с которым целое значение увеличивается и уменьшается.
Это свойство актуально только при использовании диалогового окна ввода в режиме IntInput.
Функции доступа:
| int | intStep() const |
| void | setIntStep(int step) |
intValue : int
Это свойство содержит текущее целое значение, принимаемое в качестве входного.
Это свойство актуально только при использовании диалогового окна ввода в режиме IntInput.
Функции доступа:
| int | intValue() const |
| void | setIntValue(int value) |
Сигнал уведомления:
| void | intValueChanged(int value) |
labelText : QString
Это свойство содержит текст метки, описывающий необходимый ввод.
Функции доступа:
| QString | labelText() const |
| void | setLabelText(const QString &text) |
okButtonText : QString
Это свойство содержит текст для кнопки подтверждения ввода в диалоговом окне.
Функции доступа:
| QString | okButtonText() const |
| void | setOkButtonText(const QString &text) |
options : InputDialogOptions
Это свойство содержит различные параметры, влияющие на внешний вид диалогового окна.
По умолчанию все параметры отключены.
Функции доступа:
| QInputDialog::InputDialogOptions | options() const |
| void | setOptions(QInputDialog::InputDialogOptions options) |
См. также setOption() и testOption().
textEchoMode : QLineEdit::EchoMode
Это свойство содержит режим отображения текста для значения.
Это свойство актуально только при использовании диалога ввода в режиме TextInput.
Функции доступа:
| QLineEdit::EchoMode | textEchoMode() const |
| void | setTextEchoMode(QLineEdit::EchoMode mode) |
textValue : QString
Это свойство содержит текстовое значение для диалога ввода.
Это свойство актуально только при использовании диалога ввода в режиме TextInput.
Функции доступа:
| QString | textValue() const |
| void | setTextValue(const QString &text) |
Сигнал уведомления:
| void | textValueChanged(const QString &text) |
Документация по членам-функциям
QInputDialog::QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
Создает новый диалог ввода с указанным parent и флагами окна flags.
[signal] void QInputDialog::doubleValueChanged(double value)
Этот сигнал испускается всякий раз, когда значение типа double изменяется в диалоге. Текущее значение задаётся параметром value.
Этот сигнал актуален только при использовании диалога ввода в режиме DoubleInput.
Примечание: Сигнал уведомления для свойства doubleValue.
[signal] void QInputDialog::doubleValueSelected(double value)
Этот сигнал испускается всякий раз, когда пользователь выбирает значение типа double, подтверждая диалог, например, нажав кнопку OK. Выбранное значение задаётся параметром value.
Этот сигнал актуален только при использовании диалога ввода в режиме DoubleInput.
[signal] void QInputDialog::intValueChanged(int value)
Этот сигнал испускается всякий раз, когда целочисленное значение изменяется в диалоге. Текущее значение задаётся параметром value.
Этот сигнал актуален только при использовании диалога ввода в режиме IntInput.
Примечание: Сигнал уведомления для свойства intValue.
[signal] void QInputDialog::intValueSelected(int value)
Этот сигнал испускается всякий раз, когда пользователь выбирает целочисленное значение, подтверждая диалог, например, нажав кнопку OK. Выбранное значение задаётся параметром value.
Этот сигнал актуален только при использовании диалога ввода в режиме IntInput.
[signal] void QInputDialog::textValueChanged(const QString &text)
Этот сигнал испускается всякий раз, когда строка текста изменяется в диалоге. Текущая строка задаётся параметром text.
Этот сигнал актуален только при использовании диалога ввода в режиме TextInput.
Примечание: Сигнал уведомления для свойства textValue.
[signal] void QInputDialog::textValueSelected(const QString &text)
Этот сигнал испускается всякий раз, когда пользователь выбирает строку текста, подтверждая диалог, например, нажав кнопку OK. Выбранная строка задаётся параметром text.
Этот сигнал актуален только при использовании диалога ввода в режиме TextInput.
[virtual] QInputDialog::~QInputDialog()
Удаляет диалог ввода.
[override virtual] void QInputDialog::done(int result)
Переопределяет: QDialog::done(int r).
Закрывает диалог и устанавливает его код результата в result. Если этот диалог показан с помощью exec(), done() завершает локальный цикл событий и exec() возвращает result.
См. также QDialog::done().
[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)
Статическая вспомогательная функция для получения числа с плавающей точкой от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что требуется ввести). value — значение с плавающей точкой по умолчанию, которое будет установлено в поле ввода. min и max — минимальное и максимальное значения, которые может выбрать пользователь. decimals — максимальное количество десятичных знаков в числе. step — величина изменения значений при нажатии пользователем стрелок для увеличения или уменьшения значения.
Если ok не равен null, *ok будет установлен в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родитель диалога — parent. Диалог будет модальным и использовать флаги виджета flags.
Эта функция возвращает число с плавающей точкой, введённое пользователем.
Используйте эту статическую функцию следующим образом:
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(QString("$%1").arg(d)); См. также getText(), getInt(), getItem() и 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())
Статическая вспомогательная функция для получения целочисленного значения от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что требуется ввести). value — целое значение по умолчанию, которое будет установлено в поле ввода. min и max — минимальное и максимальное значения, которые может выбрать пользователь. step — величина изменения значений при нажатии пользователем стрелок для увеличения или уменьшения значения.
Если ok не равен null, *ok будет установлен в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родитель диалога — parent. Диалог будет модальным и использовать флаги виджета flags.
При успехе эта функция возвращает целое значение, введённое пользователем; при неудаче возвращает начальное значение value.
Используйте эту статическую функцию следующим образом:
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)); См. также getText(), getDouble(), getItem() и 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)
Статическая вспомогательная функция, позволяющая пользователю выбрать элемент из списка строк.
title — это текст, отображаемый в строке заголовка диалогового окна. label — это текст, отображаемый пользователю (он должен указывать, что следует ввести). items — список строк, который вставляется в раскрывающийся список. current — номер элемента, который должен быть текущим. inputMethodHints — подсказки метода ввода, которые будут использоваться, если раскрывающийся список разрешает редактирование и активен метод ввода.
Если editable имеет значение true, пользователь может ввести собственный текст; в противном случае пользователь может выбрать только один из существующих элементов.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родительским окном диалога является parent. Диалог будет модальным и использует виджет flags.
Эта функция возвращает текст текущего элемента или, если editable равно true, текущий текст раскрывающегося списка.
Используйте эту статическую функцию следующим образом:
QStringList items;
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); См. также getText(), getInt(), getDouble() и getMultiLineText().
[static, since 5.2] 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)
Статическая вспомогательная функция для получения многострочного текста от пользователя.
title — текст, отображаемый в строке заголовка диалогового окна. label — текст, отображаемый пользователю (он должен указывать, что следует ввести). text — текст по умолчанию, который отображается в поле редактирования. inputMethodHints — подсказки метода ввода, которые будут использоваться в виджете редактирования, если активен метод ввода.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родительским окном диалога является parent. Диалог будет модальным и использует указанные флаги виджета flags.
Если диалог принят, эта функция возвращает текст из поля редактирования диалогового окна. Если диалог отклонен, возвращается null QString.
Используйте эту статическую функцию следующим образом:
bool ok;
QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"),
tr("Address:"), "John Doe\nFreedom Street", &ok);
if (ok && !text.isEmpty())
multiLineTextLabel->setText(text); Эта функция была добавлена в Qt 5.2.
См. также getInt(), getDouble(), getItem() и 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)
Статическая вспомогательная функция для получения строки от пользователя.
title — текст, отображаемый в строке заголовка диалогового окна. label — текст, отображаемый пользователю (он должен указывать, что следует ввести). text — текст по умолчанию, который отображается в строке редактирования. mode — режим отображения строки редактирования. inputMethodHints — подсказки метода ввода, которые будут использоваться в виджете редактирования, если активен метод ввода.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родительским окном диалога является parent. Диалог будет модальным и использует указанные флаги виджета flags.
Если диалог принят, эта функция возвращает текст из строки редактирования диалогового окна. Если диалог отклонен, возвращается null QString.
Используйте эту статическую функцию следующим образом:
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); См. также getInt(), getDouble(), getItem() и getMultiLineText().
[override virtual] QSize QInputDialog::minimumSizeHint() const
Переопределяет: QDialog::minimumSizeHint() const.
void QInputDialog::open(QObject *receiver, const char *member)
Эта функция подключает один из своих сигналов к слоту, указанному receiver и member. Конкретный сигнал зависит от аргументов, указанных в member. Это:
- textValueSelected() если member содержит QString в качестве первого аргумента.
- intValueSelected() если member содержит целое число в качестве первого аргумента.
- doubleValueSelected() если member содержит число с плавающей точкой в качестве первого аргумента.
- accepted() если member не содержит аргументов.
Сигнал будет отключен от слота при закрытии диалогового окна.
void QInputDialog::setDoubleRange(double min, double max)
Устанавливает диапазон значений с двойной точностью, принимаемых диалоговым окном, когда используется режим DoubleInput, с минимальным и максимальным значениями, заданными соответственно min и max.
void QInputDialog::setIntRange(int min, int max)
Устанавливает диапазон целых чисел, принимаемых диалоговым окном, когда используется режим IntInput, с минимальным и максимальным значениями, заданными соответственно min и max.
void QInputDialog::setOption(QInputDialog::InputDialogOption option, bool on = true)
Устанавливает заданный option в состояние включения, если on равно true; в противном случае очищает заданный option.
См. также options и testOption().
[override virtual] void QInputDialog::setVisible(bool visible)
Переопределяет: QDialog::setVisible(bool visible).
[override virtual] QSize QInputDialog::sizeHint() const
Переопределяет: QDialog::sizeHint() const.
bool QInputDialog::testOption(QInputDialog::InputDialogOption option) const
Возвращает true если заданный option включен; в противном случае возвращает false.
См. также options и setOption().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qinputdialog.html