Spec-Zone.ru › Qt

Класс 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 { ТекстовыйВвод, ЦелочисленныйВвод, ВещественныйВвод }

Свойства

  • cancelButtonText : QString
  • comboBoxEditable : bool
  • comboBoxItems : QStringList
  • doubleDecimals : int
  • doubleMaximum : double
  • doubleMinimum : double
  • doubleStep : double
  • doubleValue : int
  • inputMode : InputMode
  • intMaximum : int
  • intMinimum : int
  • intStep : int
  • intValue : int
  • labelText : QString
  • okButtonText : QString
  • options : InputDialogOptions
  • textEchoMode : QLineEdit::EchoMode
  • textValue : QString

Открытые функции

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.

Input Dialogs

Пример стандартных диалогов демонстрирует использование 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API