Класс QAbstractMessageHandler
Класс QAbstractMessageHandler предоставляет интерфейс обратного вызова для обработки сообщений. Подробнее...
| Заголовок: | #include <QAbstractMessageHandler> |
| qmake: | QT += xmlpatterns |
| С момента: | Qt 4.4 |
| Наследует: | QObject |
Этот класс был представлен в Qt 4.4.
Открытые функции
| QAbstractMessageHandler(QObject *parent = nullptr) | |
| virtual | ~QAbstractMessageHandler() |
| void | message(QtMsgType type, const QString &description, const QUrl &identifier = QUrl(), const QSourceLocation &sourceLocation = QSourceLocation()) |
Защищенные функции
| virtual void | handleMessage(QtMsgType type, const QString &description, const QUrl &identifier = ..., const QSourceLocation &sourceLocation = ...) = 0 |
Подробное описание
QAbstractMessageHandler — это абстрактный базовый класс, который предоставляет интерфейс обратного вызова для обработки сообщений. Например, класс QXmlQuery анализирует и выполняет XQuery. Когда он обнаруживает ошибку компиляции или выполнения, он генерирует соответствующее сообщение об ошибке, но вместо вывода самого сообщения передает сообщение функции message() своего QAbstractMessageHandler. См. QXmlQuery::setMessageHandler().
Вы создаете обработчик сообщений, производя класс от QAbstractMessageHandler и реализуя handleMessage(). Затем вы передаете указатель на экземпляр своего подкласса любым классам, которые должны генерировать сообщения. Сообщения отправляются обработчику сообщений через функцию message(), которая передает их в вашу функцию handleMessge().
Один экземпляр QAbstractMessageHandler может быть вызван для обработки сообщений из нескольких источников. Следовательно, содержимое сообщения, которое является параметром description, передаваемым в message() и handleMessage(), должно интерпретироваться с учетом контекста, потребовавшего отправки сообщения. Этот контекст задается параметрами identifier и sourceLocation для функций message() и handleMessage().
Документация по функциям-членам
QAbstractMessageHandler::QAbstractMessageHandler(QObject *parent = nullptr)
Конструирует QAbstractMessageHandler. parent передается конструктору базового класса QObject.
[virtual] QAbstractMessageHandler::~QAbstractMessageHandler()
Деструктор этого QAbstractMessageHandler.
[pure virtual protected] void QAbstractMessageHandler::handleMessage(QtMsgType type, const QString &description, const QUrl &identifier = ..., const QSourceLocation &sourceLocation = ...)
Эта функция должна быть реализована подклассом. message() вызовет эту функцию, передав свои параметры type, description, identifier и sourceLocation без изменений.
Эта функция потенциально может быть вызвана из нескольких потоков. Реализация должна обеспечить безопасность потоков.
void QAbstractMessageHandler::message(QtMsgType type, const QString &description, const QUrl &identifier = QUrl(), const QSourceLocation &sourceLocation = QSourceLocation())
Отправляет сообщение в этот обработчик сообщений. type — это тип отправляемого сообщения. description — это содержимое сообщения. identifier — это URI, который идентифицирует сообщение и является ключом к интерпретации других аргументов.
Как правило, этот класс используется для сообщения об ошибках, как в случае с QXmlQuery, который использует QAbstractMessageHandler для сообщения об ошибках компиляции и выполнения XQuery. Поэтому использование QUrl в качестве идентификатора сообщения вдохновлено объяснением обработки ошибок в языке XQuery. Поскольку identifier состоит из URI пространства имен и локальной части, идентификаторы с одинаковой локальной частью уникальны. Вызывающая сторона отвечает за обеспечение того, что identifier является либо допустимым QUrl, либо QUrl по умолчанию.
sourceLocation идентифицирует расположение в ресурсе (т.е. файле или документе), где была обнаружена необходимость отправить сообщение.
Эта функция безусловно вызывает handleMessage(), передавая все свои параметры без изменений.
См. такжеhttp://www.w3.org/TR/xquery/#errors.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qabstractmessagehandler.html