Класс QInputDialog
Класс QInputDialog предоставляет простой диалог для получения одного значения от пользователя. Подробнее...
| Заголовок: | #include <QInputDialog> |
| qmake: | QT += widgets |
| Наследует: | QDialog |
Открытые типы
| enum | InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput } |
| flags | InputDialogOptions |
| enum | InputMode { TextInput, IntInput, DoubleInput } |
Свойства
|
|
- 2 свойства унаследованы от QDialog
- 58 свойств унаследованы от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QInputDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) | |
| ~QInputDialog() | |
| QString | cancelButtonText() const |
| QStringList | comboBoxItems() const |
| int | doubleDecimals() const |
| double | doubleMaximum() const |
| double | doubleMinimum() const |
| double | doubleValue() const |
| 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) |
| 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 | setDoubleValue(double value) |
| void | setInputMode(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(InputDialogOption option, bool on = true) |
| void | setOptions(InputDialogOptions options) |
| void | setTextEchoMode(QLineEdit::EchoMode mode) |
| void | setTextValue(const QString &text) |
| bool | testOption(InputDialogOption option) const |
| QLineEdit::EchoMode | textEchoMode() const |
| QString | textValue() const |
Переопределённые открытые функции
| виртуальный void | done(int result) |
| виртуальный QSize | minimumSizeHint() const |
| виртуальный void | setVisible(bool visible) |
| виртуальный QSize | sizeHint() const |
- 8 общедоступных функций унаследовано от QDialog
- 211 общедоступных функций унаследовано от QWidget
- 31 общедоступных функций унаследовано от QObject
- 14 общедоступных функций унаследовано от QPaintDevice
Сигналы
| 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) |
- 3 сигналов унаследовано от QDialog
- 3 сигналов унаследовано от QWidget
- 2 сигналов унаследовано от QObject
Статические общедоступные члены
| double | getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) |
| int | getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = Q_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 = Q_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 = Q_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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
- 5 статических общедоступных членов унаследовано от QWidget
- 11 статических общедоступных членов унаследовано от QObject
Дополнительные унаследованные члены
- 5 общедоступных слотов унаследовано от QDialog
- 19 общедоступных слотов унаследовано от QWidget
- 1 общедоступный слот унаследовано от QObject
- 7 защищённых функций унаследовано от QDialog
- 35 защищённых функций унаследовано от QWidget
- 9 защищённых функций унаследовано от QObject
- 1 защищённая функция унаследовано от QPaintDevice
- 1 защищённый слот унаследовано от QWidget
Подробное описание
Класс QInputDialog предоставляет удобный диалог для получения единственного значения от пользователя.
Значение ввода может быть строкой, числом или элементом из списка. Для указания требуемого ввода пользователю необходимо задать метку.
Предоставлены пять статических удобных функций: 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, если пользователь нажимает кнопку OK; в противном случае, она устанавливается в значение false.
Пример стандартных диалогов демонстрирует использование QInputDialog, а также других встроенных диалогов Qt.
См. также QMessageBox и Пример стандартных диалогов.
Документация по типам членов
перечисление QInputDialog::InputDialogOptionфлаги QInputDialog::InputDialogOptions
Это перечисление определяет различные параметры, которые влияют на внешний вид диалога ввода.
| Константа | Значение | Описание |
|---|---|---|
QInputDialog::NoButtons |
0x00000001 |
Не отображать кнопки OK и Отмена (полезно для «динамических диалогов»). |
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.
Свойства
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) |
doubleValue : int
Это свойство содержит текущее значение с плавающей точкой двойной точности, принимаемое в качестве входных данных
Это свойство актуально только тогда, когда диалоговое окно ввода используется в режиме DoubleInput.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| double | doubleValue() const |
| void | setDoubleValue(double value) |
Сигнал уведомления:
| void | doubleValueChanged(double value) |
inputMode : InputMode
Это свойство содержит режим, используемый для ввода
Это свойство помогает определить, какой виджет используется для ввода данных в диалоговое окно.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| InputMode | inputMode() const |
| void | setInputMode(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.
Функции доступа:
| InputDialogOptions | options() const |
| void | setOptions(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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Создаёт новый диалог ввода с заданным parent и флагами окна flags.
Эта функция была добавлена в Qt 4.5.
QInputDialog::~QInputDialog()
Удаляет диалог ввода.
Эта функция была добавлена в Qt 4.5.
[virtual] void QInputDialog::done(int result)
Переопределяет QDialog::done().
Закрывает диалог и устанавливает его код результата в result. Если этот диалог показан с помощью exec(), done() завершает локальный цикл событий и exec() возвращает result.
См. также QDialog::done().
[signal] void QInputDialog::doubleValueChanged(double value)
Этот сигнал излучается всякий раз, когда значение типа double изменяется в диалоге. Текущее значение задано value.
Этот сигнал актуален только когда диалог ввода используется в режиме DoubleInput.
Примечание: Сигнал уведомления для свойства doubleValue.
[signal] void QInputDialog::doubleValueSelected(double value)
Этот сигнал излучается всякий раз, когда пользователь выбирает значение типа double, принимая диалог; например, нажав кнопку ОК. Выбранное значение задано value.
Этот сигнал актуален только когда диалог ввода используется в режиме 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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Статическая вспомогательная функция для получения числа с плавающей точкой от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что нужно ввести). value — значение с плавающей точкой по умолчанию, которое будет установлено в поле редактирования. min и max — минимальное и максимальное значения, которые может выбрать пользователь. decimals — максимальное количество десятичных знаков, которое может иметь число.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал ОК, и в false, если пользователь нажал Отмена. Родитель диалога — parent. Диалог будет модальным и использовать флаги виджета flags.
Функция возвращает число с плавающей точкой, введённое пользователем.
Используйте эту статическую функцию следующим образом:
bool ok;
double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Статическая вспомогательная функция для получения целого числа от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что нужно ввести). value — целое число по умолчанию, которое будет установлено в поле ввода. min и max — минимальное и максимальное значения, которые может выбрать пользователь. step — величина изменения значения при нажатии пользователем стрелок для увеличения или уменьшения значения.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал ОК, и в false, если пользователь нажал Отмена. Родитель диалога — parent. Диалог будет модальным и использовать флаги виджета flags.
При успехе эта функция возвращает целое число, введённое пользователем; при ошибке она возвращает начальное значение value.
Используйте эту статическую функцию следующим образом:
bool ok;
int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),
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 = Q_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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
Статическая вспомогательная функция для получения многострочного текста от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что нужно ввести). text — текст по умолчанию, который помещается в редактор простого текста. inputMethodHints — подсказки метода ввода, которые будут использоваться в виджете редактирования, если активен метод ввода.
Если ok не равно null, *ok будет установлено в true, если пользователь нажал ОК, и в false, если пользователь нажал Отмена. Родитель диалога — parent. Диалог будет модальным и использовать заданные флаги виджета flags.
Если диалог принят, эта функция возвращает текст из текстового поля диалога. Если диалог отклонен, возвращается пустой 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 = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
Статическая вспомогательная функция для получения строки от пользователя.
title — текст, отображаемый в строке заголовка диалога. label — текст, отображаемый пользователю (он должен указывать, что нужно ввести). text — значение по умолчанию, которое помещается в поле редактирования. mode — режим отображения символов в поле редактирования. inputMethodHints — подсказки для методов ввода, которые будут использоваться в поле редактирования, если активен метод ввода.
Если ok не равен null, *ok будет установлен в true, если пользователь нажал OK, и в false, если пользователь нажал Отмена. Родительским виджетом диалога является parent. Диалог будет модальным и использовать указанные флаги flags.
Если диалог принят, эта функция возвращает текст из поля редактирования диалога. Если диалог отклонен, возвращается пустой 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().
[signal] void QInputDialog::intValueChanged(int value)
Этот сигнал генерируется всякий раз, когда целое значение изменяется в диалоге. Текущее значение задаётся параметром value.
Этот сигнал имеет значение только при использовании диалога ввода в режиме IntInput.
Примечание: Сигнал-уведомление для свойства intValue.
[signal] void QInputDialog::intValueSelected(int value)
Этот сигнал генерируется всякий раз, когда пользователь выбирает целое значение, принимая диалог, например, нажав кнопку OK. Выбранное значение задаётся параметром value.
Этот сигнал имеет значение только при использовании диалога ввода в режиме IntInput.
[virtual] QSize QInputDialog::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
void QInputDialog::open(QObject *receiver, const char *member)
Это перегруженная функция.
Эта функция подключает один из своих сигналов к слоту, указанному в receiver и member. Конкретный сигнал зависит от аргументов, указанных в member. Это:
- textValueSelected() если member имеет QString в качестве первого аргумента.
- intValueSelected() если member имеет int в качестве первого аргумента.
- doubleValueSelected() если member имеет double в качестве первого аргумента.
- 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(InputDialogOption option, bool on = true)
Устанавливает заданный option в активное состояние, если on равно true; в противном случае очищает заданный option.
См. также options и testOption().
[virtual] void QInputDialog::setVisible(bool visible)
Переопределено из QWidget::setVisible().
[virtual] QSize QInputDialog::sizeHint() const
Переопределено из QWidget::sizeHint().
bool QInputDialog::testOption(InputDialogOption option) const
Возвращает true если заданный option включён; в противном случае возвращает false.
См. также options и setOption().
[signal] void QInputDialog::textValueChanged(const QString &text)
Этот сигнал генерируется всякий раз, когда строка текста изменяется в диалоге. Текущая строка задаётся параметром text.
Этот сигнал имеет значение только при использовании диалога ввода в режиме TextInput.
Примечание: Сигнал-уведомление для свойства textValue.
[signal] void QInputDialog::textValueSelected(const QString &text)
Этот сигнал генерируется всякий раз, когда пользователь выбирает строку текста, принимая диалог, например, нажав кнопку OK. Выбранная строка задаётся параметром text.
Этот сигнал имеет значение только при использовании диалога ввода в режиме TextInput.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qinputdialog.html