Spec-Zone.ru › Qt 6.1

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

Свойства

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

Документация по типам членов

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

Spec-Zone.ru

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