Шаг 139.
Библиотека Qt.
Диалоговое окно ввода

    На этом шаге рассмотрим стандартное диалоговое окно ввода.

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

    Для отображения диалогового окна ввода класс QInputDialog предоставляет четыре статических метода:

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

    В методах getInteger() и getDouble() четвертым параметром передается значение для инициализации (по умолчанию равное нулю), а пятым и шестым — минимально возможное (по умолчанию ?2 147 483 647) и максимально возможное (по умолчанию 2 147 483 647) значения.

    В методе getText() четвертый параметр управляет режимом ввода паролей, а пятым параметром передается текст для инициализации (по умолчанию это пустая строка).

    В методе getItem() четвертым параметром передается список строк (QStringList), пятый параметр делает одну из переданных строк текущей (по умолчанию — первая строка), шестой параметр управляет режимом возможности редактирования строк (по умолчанию включен).

    Два последних параметра у всех этих методов — аналогичные: это указатель на переменную булевого типа, информирующую о кнопке, нажатой при закрытии окна — OK или Cancel (Отмена), и флаги окна (см. шаг 18).

    Например, отобразить диалоговое окно ввода текста (рис. 1) можно следующим образом:


Рис.1. Диалоговое окно ввода пароля

bool bOk;
QString str = QInputDialog::getText(0,
                                    "Пароль",
                                    "Введите пароль:",
                                    QLineEdit::Password,
                                    "qwerty",
                                    &bOk
                                    );
if (!bOk) {
// Была нажата кнопка Cancel 
}

    Файлы приложения можно взять здесь.

    На следующем шаге рассмотрим cтандартное диалоговое окно прогресса.




Предыдущий шаг Содержание Следующий шаг