0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое месседж бокс

С помощью функции MessageBox можно вывести на экран окно сообщения с заданными заголовком и текстом. Окно можно дополнить иконкой из специально предназначенного для этого стандартного набора со следующими символами:

  • «!» — для сообщений, требующих повышенного внимания пользователя;
  • «i» — для сообщений информационного характера;
  • «?» — для сообщений, содержащих вопрос;
  • знак «стоп» — для сообщений о критических ошибках.

Для обратной связи с пользователем окно снабжено одним из стандартных наборов кнопок:

  • «OK»;
  • «OK», «Отмена»;
  • «Повторить», «Отмена»;
  • «Да», «Нет»;
  • «Да», «Нет», «Отмена»;
  • «Прервать», «Повторить», «Пропустить».

API на основе свойств

Рассмотрим API на основе свойств, для этого создадим экземпляр QMessageBox, установим свойства и вызовем exec() для вывода сообщения.

В результате будет показан модельный диалог с сообщением “Текс”. Для закрытия окна нужно нажать кнопку ОК или закрыть окно. Во время показа диалога остальная часть GUI блокируется до тех пор, пока окно сообщения не будет закрыто.

В данном методе можно добавить дополнительные кнопки методом setStandardButtons().

Кнопка по умолчанию (то есть кнопка, активируемая при нажатии клавиши Enter) может быть указана с помощью setDefaultButton(). Если кнопка по умолчанию не указана, QMessageBox пытается найти ее на основе ролей кнопок, используемых в окне сообщения. Экранирующая кнопка (кнопка, активируемая при нажатии клавиши Esc) может быть указана с помощью setEscapeButton(). Если кнопка выхода не указана, QMessageBox пытается найти кнопку, используя эти правила:

  • Если есть только одна кнопка, она активируется при нажатии Esc
  • Если есть кнопка «Отмена», то эта кнопка активируется при нажатии Esc
  • Если есть ровно одна кнопка с ролью «Отклонить» или роль «Нет», то эта кнопка активируется при нажатии клавиши Esc
  • Когда кнопка выхода не может быть определена с использованием этих правил, нажатие клавиши Esc не имеет никакого эффекта

При нажатия на кнопку метод msgBox.exec() вернет идентификатор выбранной кнопки.

Пример обработки выбранной кнопки:

Для добавление иконки вызовем метод msgBox.setIcon(), данный метод позволяет добавить свою иконку или использовать из набора QMessageBox.

Иконки, которые входят в стандартный набор QMessageBox:

QMessageBox ::QuestionВопрос во время нормальной работы
QMessageBox::InformationДля сообщения информации во время нормальной работы
QMessageBox::WarningДля сообщения о некритических ошибках
MessageBox::CriticalДля сообщения о критических ошибках
  1. Они работают быстрее для пользователя, так как помогут быстрее делать выбор одним щелчком, а не двумя. Типичный щелчок занимает от 1,2 до 2,4 секунды.
  2. Для сенсорных интерфейсов легче выбрать переключатель, чем перемещаться по раскрывающемуся списку.
  3. Вы можете предоставить все варианты сразу(доступность).

Чтобы создать переключатель, мы будем использовать модуль tkinter языка Python. Давайте посмотрим на код.

В приведенном выше фрагменте кода мы сначала импортируем модуль tkinter и инициализируем фрейм tkinter с помощью Tk() . Внутри этого root фрейма мы создаем две радиокнопки, используя функцию Radiobutton() которая принимает такие параметры, как имя фрейма, текст и значение. Затем мы используем функцию pack() , чтобы разбить этот виджет на строки и столбцы.

Вывод приведенного выше фрагмента кода показан ниже:

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: