Класс QAbstractMessageHandler
Класс QAbstractMessageHandler предоставляет интерфейс обратного вызова для обработки сообщений. Подробнее...
| Заголовок: | #include <QAbstractMessageHandler> |
| qmake: | QT += xmlpatterns |
| С момента: | Qt 4.4 |
| Наследует: | QObject |
Открытые функции
| QAbstractMessageHandler(QObject *parent = Q_NULLPTR) | |
| virtual | ~QAbstractMessageHandler() |
| void | message(QtMsgType type, const QString &description, const QUrl &identifier = QUrl(), const QSourceLocation &sourceLocation = QSourceLocation()) |
- 31 открытых функций унаследовано от QObject
Защищенные функции
| virtual void | handleMessage(QtMsgType type, const QString &description, const QUrl &identifier, const QSourceLocation &sourceLocation) = 0 |
- 9 защищенных функций унаследовано от QObject
Дополнительные унаследованные члены
- 1 свойство унаследовано от QObject
- 1 открытый слот унаследован от QObject
- 2 сигнала унаследованы от QObject
- 11 статических открытых членов унаследовано от QObject
Подробное описание
Класс QAbstractMessageHandler предоставляет интерфейс обратного вызова для обработки сообщений.
QAbstractMessageHandler — это абстрактный базовый класс, который предоставляет интерфейс обратного вызова для обработки сообщений. Например, класс QXmlQuery анализирует и выполняет XQuery. При обнаружении ошибки компиляции или выполнения он генерирует соответствующее сообщение об ошибке, но вместо вывода самого сообщения передаёт его в функцию message() своего объекта QAbstractMessageHandler. См. QXmlQuery::setMessageHandler().
Вы создаёте обработчик сообщений, производя подкласс от QAbstractMessageHandler и реализовывая функцию handleMessage(). Затем передаёте указатель на экземпляр вашего подкласса всем классам, которые должны генерировать сообщения. Сообщения отправляются обработчику сообщений через функцию message(), которая пересылает их в вашу функцию handleMessge().
Один экземпляр QAbstractMessageHandler может обрабатывать сообщения от нескольких источников. Следовательно, содержимое сообщения, которое является параметром description, передаваемым в message() и handleMessage(), должно интерпретироваться с учётом контекста, потребовавшего отправки сообщения. Этот контекст задаётся параметрами identifier и sourceLocation для функций message() и handleMessage().
Документация по функциям-членам
QAbstractMessageHandler::QAbstractMessageHandler(QObject *parent = Q_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. Поскольку идентификатор состоит из 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/archives/qt-5.6/qabstractmessagehandler.html