Класс QInputDialog
Класс QInputDialog предоставляет простой диалог для получения одного значения от пользователя. Подробнее...
| Заголовок: | #include <QInputDialog> |
| 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 и Пример стандартных диалоговых окон.
Документация по типам членов
перечисление QInputDialog::InputDialogOptionфлаги QInputDialog::InputDialogOptions
Это перечисление определяет различные параметры, влияющие на внешний вид диалогового окна ввода.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::NoButtons |
0x00000001 |
Не отображать кнопки ОК и Отмена (полезно для «живых» диалоговых окон). |
QInputDialog::UseListViewForComboBoxItems |
0x00000002 |
Использовать QListView вместо нередактируемого QComboBox для отображения элементов, установленных с помощью setComboBoxItems(). |
QInputDialog::UsePlainTextEditForTextInput |
0x00000004 |
Использовать QPlainTextEdit для ввода многострочного текста. Это значение было добавлено в 5.2. |
Это перечисление было введено или изменено в Qt 4.5.
Тип InputDialogOptions является псевдонимом для QFlags<InputDialogOption>. Он хранит результат побитового ИЛИ комбинации значений InputDialogOption.
См. также options, setOption() и testOption().
перечисление QInputDialog::InputMode
Это перечисление описывает различные режимы ввода, которые могут быть выбраны для диалогового окна.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::TextInput |
0 |
Используется для ввода текстовых строк. |
QInputDialog::IntInput |
1 |
Используется для ввода целых чисел. |
QInputDialog::DoubleInput |
2 |
Используется для ввода чисел с плавающей запятой с двойной точностью. |
Это перечисление было введено или изменено в Qt 4.5.
См. также inputMode.
END_OF_DOCUMENT_MARKER ```Документация свойств
cancelButtonText : QString
Это свойство содержит текст для кнопки отмены диалога.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QString | cancelButtonText() const |
| void | setCancelButtonText(const QString &text) |
comboBoxEditable : bool
Это свойство указывает, является ли поле ввода комбобокса в диалоге редактируемым.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| bool | isComboBoxEditable() const |
| void | setComboBoxEditable(bool editable) |
comboBoxItems : QStringList
Это свойство содержит элементы, используемые в комбобоксе диалога ввода.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QStringList | comboBoxItems() const |
| void | setComboBoxItems(const QStringList &items) |
doubleDecimals : int
устанавливает точность десятичного знака для поля ввода двойной точности
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| int | doubleDecimals() const |
| void | setDoubleDecimals(int decimals) |
См. также QDoubleSpinBox::setDecimals().
doubleMaximum : double
Это свойство содержит максимальное значение с плавающей запятой двойной точности, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме DoubleInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| double | doubleMaximum() const |
| void | setDoubleMaximum(double max) |
doubleMinimum : double
Это свойство содержит минимальное значение с плавающей запятой двойной точности, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме DoubleInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| double | doubleMinimum() const |
| void | setDoubleMinimum(double min) |
doubleStep : double
Это свойство содержит шаг, с которым увеличивается и уменьшается значение с плавающей запятой двойной точности.
Это свойство актуально только при использовании диалога ввода в режиме DoubleInput.
Это свойство было добавлено в Qt 5.10.
Функции доступа:
| double | doubleStep() const |
| void | setDoubleStep(double step) |
doubleValue : int
Это свойство содержит текущее значение с плавающей запятой двойной точности, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме DoubleInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| double | doubleValue() const |
| void | setDoubleValue(double value) |
Сигнал уведомления:
| void | doubleValueChanged(double value) |
inputMode : InputMode
Это свойство содержит режим ввода.
Это свойство помогает определить виджет, используемый для ввода данных в диалог.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QInputDialog::InputMode | inputMode() const |
| void | setInputMode(QInputDialog::InputMode mode) |
intMaximum : int
Это свойство содержит максимальное целое значение, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме IntInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| int | intMaximum() const |
| void | setIntMaximum(int max) |
intMinimum : int
Это свойство содержит минимальное целое значение, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме IntInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| int | intMinimum() const |
| void | setIntMinimum(int min) |
intStep : int
Это свойство содержит шаг, с которым увеличивается и уменьшается целое значение.
Это свойство актуально только при использовании диалога ввода в режиме IntInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| int | intStep() const |
| void | setIntStep(int step) |
intValue : int
Это свойство содержит текущее целое значение, принимаемое в качестве входных данных.
Это свойство актуально только при использовании диалога ввода в режиме IntInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| int | intValue() const |
| void | setIntValue(int value) |
Сигнал уведомления:
| void | intValueChanged(int value) |
labelText : QString
Это свойство содержит текст метки, описывающий то, что нужно ввести.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QString | labelText() const |
| void | setLabelText(const QString &text) |
okButtonText : QString
Это свойство содержит текст кнопки подтверждения ввода в диалоге.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QString | okButtonText() const |
| void | setOkButtonText(const QString &text) |
options : InputDialogOptions
Это свойство содержит различные параметры, которые влияют на внешний вид диалогового окна.
По умолчанию все параметры отключены.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QInputDialog::InputDialogOptions | options() const |
| void | setOptions(QInputDialog::InputDialogOptions options) |
См. также setOption() и testOption().
textEchoMode : QLineEdit::EchoMode
Это свойство определяет режим отображения введённого текста.
Это свойство актуально только при использовании диалогового окна для ввода текста (TextInput).
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| QLineEdit::EchoMode | textEchoMode() const |
| void | setTextEchoMode(QLineEdit::EchoMode mode) |
textValue : QString
Это свойство содержит значение текста для диалогового окна ввода.
Это свойство актуально только при использовании диалогового окна для ввода текста (TextInput).
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| 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.
Эта функция была добавлена в Qt 4.5.
[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()
Удаляет диалоговое окно ввода.
Эта функция была добавлена в Qt 4.5.
[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)); Эта функция была добавлена в Qt 4.5.
См. также 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] 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 содержит вещественное число в качестве первого аргумента.
- accepted() если member не содержит аргументов.
Подключение сигнала к слоту отключается при закрытии диалогового окна.
Эта функция была добавлена в Qt 4.5.
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; в противном случае очищает заданный параметр.
См. также 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-5.15/qinputdialog.html