На этом шаге рассмотрим стандартное диалоговое окно ввода.
Диалоговое окно ввода данных можно использовать для предоставления пользователю возможности ввода строки или числа. Это окно реализовано в классе 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тандартное диалоговое окно прогресса.