Python

Как использовать PyQt QMessageBox

Как использовать PyQt QMessageBox
Окно сообщения используется в приложении с графическим интерфейсом пользователя, чтобы предоставить пользователю необходимую информацию или попросить пользователя предпринять действия на основе сообщения. Для любого приложения с графическим интерфейсом пользователя можно создать четыре типа окон сообщений, включая информационное окно сообщения, окно предупреждающего сообщения, окно критического сообщения и окно сообщения вопроса. В QMessageBox класс PyQt используется в Python для создания окна сообщения. В этом руководстве показано, как использовать класс QMessageBox для создания различных окон сообщений.

Необходимые методы

Класс QMessageBox имеет множество методов для создания различных типов окон сообщений. Некоторые из наиболее часто используемых методов класса QMessageBox описаны ниже:

Имена методов  Цель
setTitle () Используется для отображения настраиваемого заголовка.
setText () Используется для установки текста основного сообщения.
setDetailText () Используется для отображения окна с кнопкой подробностей; текст сообщения появится после того, как пользователь нажмет на кнопку.
setInformativeText Используется для отображения дополнительного сообщения.
setIcon () Используется для установки значка в окне сообщения в зависимости от типа сообщения.
setWindowTitle () Используется для установки заголовка окна сообщения.
setDefaultButton () Используется для установки кнопки в окне сообщения по умолчанию; кнопка выдаст сигнал щелчка, когда Входить клавиша нажата.
setEscapeButton () Используется для настройки работы любой кнопки как клавиши выхода; кнопка выдаст сигнал щелчка, когда Побег клавиша нажата.
setStandardButtons () В окне сообщения можно использовать различные стандартные кнопки в зависимости от типа сообщения, такие как ОК, Да, Нет, Отмена, Закрыть и т. Д.

Использование QMessageBox

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

Пример 1: Создание окна информационного сообщения

Следующий скрипт создаст простое информационное окно сообщения с использованием класса QMessageBox. Этот тип окна сообщения предоставляет информационное сообщение только для пользователя. ОК кнопка по умолчанию в окне сообщения. Здесь, QMessageBox.Информация используется в setIcon () способ отображения значка информации в окне сообщения.

# Импортировать необходимые модули
import sys
из PyQt5.QtWidgets импортировать QApplication, QMainWindow, QMessageBox
# Определить класс для отображения информационного сообщения
класс MessageWindow (QMainWindow):
def __init __ (сам):
# Вызвать родительский конструктор
супер().__в этом__()
# Создаем объект messagebox
себя.msg = QMessageBox ()
# Установите значок информации
себя.сообщение.setIcon (QMessageBox.Информация)
# Установить главное сообщение
себя.сообщение.setText ("Задача успешно выполнена.")
# Установить заголовок окна
себя.сообщение.setWindowTitle ("Информационное сообщение")
# Показать окно сообщения
себя.сообщение.показывать()
# Создать объект приложения и запустить приложение
app = QApplication (sys.argv)
Win = MessageWindow ()
приложение.exec ()

Следующее окно сообщения появится после выполнения вышеуказанного скрипта.

Пример 2: Создание окна предупреждающего сообщения

Следующий скрипт создаст окно с предупреждением, используя класс QMessageBox. Этот тип окна сообщения содержит предупреждающее сообщение для пользователя. В предупреждение используется в setIcon () способ отображения значка предупреждения в окне сообщения. В ОК а также Отмена кнопки добавляются в окно сообщения с помощью setStandardButtons () метод. Пользовательский метод под названием msgButton () определен в классе для отслеживания кнопки в окне сообщения, которое было нажато пользователем. Если пользователь щелкает ОК кнопку, затем текст, "Кнопка ОК нажата,'напечатает; в противном случае 'Нажата кнопка отменытекст будет напечатан.

# Импортировать необходимые модули
import sys
из PyQt5.QtWidgets импортировать QApplication, QMainWindow, QMessageBox
# Определить класс для отображения информационного сообщения
класс MessageWindow (QMainWindow):
def __init __ (сам):
# Вызвать родительский конструктор
супер().__в этом__()
# Создаем объект messagebox
себя.msgWarning = QMessageBox ()
# Установите значок предупреждения
себя.msgWarning.setIcon (QMessageBox.Предупреждение)
# Установить главное сообщение
себя.msgWarning.setText ("Имя переменная не определена.")
# Установите две кнопки для окна сообщения
себя.msgWarning.setStandardButtons (QMessageBox.Хорошо | QMessageBox.Отмена)
# Вызов пользовательского метода при нажатии кнопки
себя.msgWarning.buttonClicked.подключиться (самостоятельно.msgButton)
# Установить заголовок окна
себя.msgWarning.setWindowTitle ("Предупреждающее сообщение")
# Показать окно сообщения
себя.msgWarning.показывать()
# Определить функцию для кнопок
def msgButton (сам, я):
Если я.text () == '& ОК':
print ("Нажата кнопка ОК.")
еще:
print ("Нажата кнопка отмены.")
# Создать объект приложения и запустить приложение
app = QApplication (sys.argv)
Win = MessageWindow ()
приложение.exec_ ()

Следующее окно сообщения появится после выполнения вышеуказанного скрипта.

Если пользователь щелкает ОК кнопку, появится следующий вывод.

Пример 3: Создайте Вопрос Предупреждение Сообщение

Следующий скрипт создаст окно сообщения с вопросом, используя класс QMessageBox. Этот тип окна сообщения предоставляет пользователю сообщение с вопросом, чтобы выполнить определенное действие в зависимости от решения пользователя. Здесь, QMessageBox.Вопрос используется в setIcon () способ отображения значка вопроса в окне сообщения. В да а также Нет кнопки добавляются в окно сообщения с помощью setStandardButtons () метод. В Нет кнопка устанавливается как кнопка по умолчанию с помощью метода setDefaultButton (). Пользовательский метод под названием msgButton () определен в классе для отслеживания кнопки в окне сообщения, которое было нажато пользователем.

# Импортировать необходимые модули
import sys
из PyQt5.QtWidgets импортировать QApplication, QMainWindow, QMessageBox
# Определить класс для отображения информационного сообщения
класс MessageWindow (QMainWindow):
def __init __ (сам):
# Вызвать родительский конструктор
супер().__в этом__()
# Создаем объект messagebox
себя.msgQuestion = QMessageBox ()
# Установите значок предупреждения
себя.msgQuestion.setIcon (QMessageBox.Вопрос)
# Установить главное сообщение
себя.msgQuestion.setText ("Вы хотите продолжить?")
# Установите две кнопки для окна сообщения
себя.msgQuestion.setStandardButtons (QMessageBox.Да | QMessageBox.Нет)
себя.msgQuestion.setDefaultButton (QMessageBox.Нет)
# Вызов пользовательского метода при нажатии кнопки
себя.msgQuestion.buttonClicked.подключиться (самостоятельно.msgButton)
# Установить заголовок окна
себя.msgQuestion.setWindowTitle ("Задать вопрос пользователю")
# Показать окно сообщения
себя.msgQuestion.показывать()
# Определить функцию для кнопок
def msgButton (сам, я):
Если я.text () == '& Да':
print («Задача продолжается…»)
еще:
print ("Вы отменили задачу.")
# Создать объект приложения и запустить приложение
app = QApplication (sys.argv)
Win = MessageWindow ()
приложение.exec_ ()

Следующее окно сообщения появится после выполнения вышеуказанного скрипта.

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

Заключение

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

Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...