QInputDialog

Автор: | 10 мая, 2023

QInputDialog — это стандартный диалоговый виджет Qt, который позволяет пользователю вводить значения в соответствующие поля ввода. Он может использоваться для запроса различных типов данных, таких как текст, числа, списки и т.д. В зависимости от типа данных QInputDialog может отображать соответствующий виджет для ввода данных.

Рассмотрим несколько примеров:

#include <QInputDialog>

    bool ok;
    int min=0, max=100, value = 0, step = 1;
    int value_int = QInputDialog::getInt(nullptr, "Ввод числа", "Введите число:", value, min, max, step, &ok);

 
QInputDialog::getInt

    #include <QInputDialog>  
      
      bool ok;
      QString text = QInputDialog::getText(nullptr, "Ввод текста", "Введите текст:", QLineEdit::Normal, QString(), &ok,Qt::WindowFlags() ,Qt::ImhNone);
      if (ok && !text.isEmpty()) {
          qDebug() << "Введенный текст: " << text;
      }
QInputDialog::getText
 #include <QInputDialog> 
     
      QStringList items;
      items << QString("test1") << QString("test2") << QString("test3") << QString("test4");
      int current = 0;
      bool editable = false;
      bool ok;
      QString item = QInputDialog::getItem(nullptr, "Выбор из списка",  "Выбор:", items, current, editable, &ok);

      if (ok && !text.isEmpty()) {
          qDebug() << "Выбор: " << item;
      }
QInputDialog::getItem
 #include <QInputDialog> 

      double value = 0, minValue = -2147483647,  maxValue = 2147483647;
      int decimals = 2; bool ok;
      double value_d = QInputDialog::getDouble(nullptr, "Ввод числа", "Введите число:", value, minValue, maxValue, decimals, &ok);
      if (ok) {
          qDebug() << "Введенное число: " << value_d;
      }
QInputDialog::getDouble

EchoMode в Qt описывает режим отображения введенных символов в QLineEdit. В Qt представлены следующие значения для этого перечисления:

EchoModeОписание
QLineEdit::NormalВсе введенные символы отображаются в обычном режиме
QLineEdit::NoEchoВводимые символы не отображаются на экране, используется для ввода паролей
QLineEdit::PasswordВсе введенные символы заменяются на символы псевдографики, например, на звездочки или кружочки
QLineEdit::PasswordEchoOnEditВводимые символы заменяются на символы псевдографики только при редактировании строки ввода

InputMethodHint — перечисление значений для настройки метода ввода текста в Qt.

Некоторые из значений перечисления InputMethodHint:

InputMethodHintОписание
Qt::ImhNoneНе устанавливать никаких настроек ввода метода
Qt::ImhHiddenTextСкрыть вводимый текст. Это обычно используется для паролей
Qt::ImhNoAutoUppercaseОтключить автоматический перевод первого символа каждого слова в верхний регистр
Qt::ImhPreferNumbersПри вводе символов показывать клавиатуру с числами по умолчанию
Qt::ImhEmailCharactersOnlyРазрешить ввод только символов, допустимых в адресе электронной почты
Qt::ImhUrlCharactersOnlyРазрешить ввод только символов, допустимых в URL-адресах