Класс QInputDialog
Класс QInputDialog предоставляет простой диалог для получения одного значения от пользователя. Подробнее...
| Заголовок: | #include <QInputDialog> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QDialog |
Открытые типы
| перечисление | InputDialogOption { НетКнопок, ИспользоватьListViewДляЭлементовComboBox, ИспользоватьPlainTextEditДляТекстовогоВвода } |
| флаги | 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 и Пример стандартных диалогов.
Документация по типам членов
enum QInputDialog::InputDialogOptionflags QInputDialog::InputDialogOptions
Этот перечисление определяет различные параметры, которые влияют на внешний вид диалогового окна ввода.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::NoButtons |
0x00000001 |
Не отображать кнопки ОК и Отмена (полезно для «динамических диалоговых окон»). |
QInputDialog::UseListViewForComboBoxItems |
0x00000002 |
Использовать QListView вместо нередактируемого QComboBox для отображения элементов, заданных с помощью setComboBoxItems(). |
QInputDialog::UsePlainTextEditForTextInput |
0x00000004 |
Использовать QPlainTextEdit для ввода текста в несколько строк. Это значение было введено в 5.2. |
Тип InputDialogOptions является псевдонимом для QFlags<InputDialogOption>. Он хранит комбинацию значений InputDialogOption, объединённых оператором OR.
См. также options, setOption() и testOption().
enum 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())
Статическая вспомогательная функция для получения целого числа от пользователя.
…
См. также 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, если пользователь нажал ОК, и в 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, если пользователь нажал ОК, и в 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, если пользователь нажал ОК, и в 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 имеет double в качестве первого аргумента.
- 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.1/qinputdialog.html