Шаг 265.
Библиотека PyQt5.
Диалоговые окна. Окно для вывода сообщения об ошибке

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

    Класс QErrorMessage реализует немодальное диалоговое окно с сообщением об ошибке (рисунок 1). Окно содержит надпись с собственно сообщением и флажок. Если пользователь снимает флажок, то окно больше отображаться не будет. Иерархия наследования для класса QErrorMessage выглядит так:

  (QObject, QPaintDevice) - QWidget - QDialog - QErrorMessage

    Формат конструктора класса QErrorMessage:

  <Объект> = QErrorMessage([parent=None])

    Для отображения окна предназначен метод showMessage(). Форматы его вызова:

  showMessage(<Текст сообщения>) 
  showMessage(<Текст сообщения>, <Тип>)

    Если пользователь установил флажок, и тип сообщения не был задан, все последующие сообщения об ошибках не будут выводиться на экран. Если же был указан тип сообщения, то не будут выводиться лишь сообщения того же типа. Оба формата метода являются слотами. Пример:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import sys


def on_clicked():
    eras = QtWidgets.QErrorMessage(parent=window)
    eras.showMessage("Сообщение об ошибке")

def on_clicked2():
    eras = QtWidgets.QErrorMessage(parent=window)
    eras.showMessage("Сообщение об ошибке типа warning", "warning")

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()          # Родительский компонент - окно
window.setWindowTitle("Вывод сообщения об ошибках")
# Назначаем обработчиками функции
button1 = QtWidgets.QPushButton("Ошибка_1")
button2 = QtWidgets.QPushButton("Ошибка_2")
grid = QtWidgets.QGridLayout()        # Создаем сетку
grid.addWidget(button1, 0, 0)         # Добавляем компоненты
grid.addWidget(button2, 0, 1)
button1.clicked.connect(on_clicked)
button2.clicked.connect(on_clicked2)
window.setLayout(grid)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.


Рис.1. Окно для вывода сообщения об ошибке

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




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