Spec-Zone.ru › Qt 5.6

Класс QInputDialog

Класс QInputDialog предоставляет простой диалог для получения одного значения от пользователя. Подробнее...

Заголовок: #include <QInputDialog>
qmake: QT += widgets
Наследует: QDialog
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые типы

enum InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput }
flags InputDialogOptions
enum InputMode { TextInput, IntInput, DoubleInput }

Свойства

  • cancelButtonText : QString
  • comboBoxEditable : bool
  • comboBoxItems : QStringList
  • doubleDecimals : int
  • doubleMaximum : double
  • doubleMinimum : double
  • doubleValue : int
  • inputMode : InputMode
  • intMaximum : int
  • intMinimum : int
  • intStep : int
  • intValue : int
  • labelText : QString
  • okButtonText : QString
  • options : InputDialogOptions
  • textEchoMode : QLineEdit::EchoMode
  • textValue : QString
  • 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.

Input Dialogs

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

Spec-Zone.ru

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