Spec-Zone.ru › Qt 5.11

Класс QAbstractEventDispatcher

Класс QAbstractEventDispatcher предоставляет интерфейс для управления очереди событий Qt. Подробнее...

Заголовок: #include <QAbstractEventDispatcher>
qmake: QT += core
Наследуется от: QObject
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Типы

класс TimerInfo

Открытые функции

QAbstractEventDispatcher(QObject *parent = nullptr)
виртуальный ~QAbstractEventDispatcher()
bool filterNativeEvent(const QByteArray &eventType, void *message, long *result)
void installNativeEventFilter(QAbstractNativeEventFilter *filterObj)
виртуальный void interrupt() = 0
виртуальный bool processEvents(QEventLoop::ProcessEventsFlags flags) = 0
виртуальный bool registerEventNotifier(QWinEventNotifier *notifier) = 0
виртуальный void registerSocketNotifier(QSocketNotifier *notifier) = 0
int registerTimer(int interval, Qt::TimerType timerType, QObject *object)
виртуальный void registerTimer(int timerId, int interval, Qt::TimerType timerType, QObject *object) = 0
виртуальный QList<QAbstractEventDispatcher::TimerInfo> registeredTimers(QObject *object) const = 0
виртуальный int remainingTime(int timerId) = 0
void removeNativeEventFilter(QAbstractNativeEventFilter *filter)
виртуальный void unregisterEventNotifier(QWinEventNotifier *notifier) = 0
виртуальный void unregisterSocketNotifier(QSocketNotifier *notifier) = 0
виртуальный bool unregisterTimer(int timerId) = 0
виртуальный bool unregisterTimers(QObject *object) = 0
виртуальный void wakeUp() = 0
  • 32 открытых функции унаследованные от QObject

Сигналы

void aboutToBlock()
void awake()
  • 2 сигнала, унаследованные от QObject

Статические публичные члены

QAbstractEventDispatcher * instance(QThread *thread = nullptr)
  • 11 статических публичных членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 публичный слот, унаследованный от QObject
  • 9 защищённых функций, унаследованных от QObject

Подробное описание

Класс QAbstractEventDispatcher предоставляет интерфейс для управления очередью событий Qt.

Диспечер событий получает события от системного окна и других источников. Затем он отправляет их экземпляру QCoreApplication или QApplication для обработки и передачи. QAbstractEventDispatcher предоставляет детальный контроль над доставкой событий.

Для простого управления обработкой событий используйте QCoreApplication::processEvents().

Для более точного управления циклом событий приложения вызовите instance() и вызовите функции на объекте QAbstractEventDispatcher, который возвращается. Если вы хотите использовать собственный экземпляр QAbstractEventDispatcher или подкласса QAbstractEventDispatcher, вы должны установить его с помощью QCoreApplication::setEventDispatcher() или QThread::setEventDispatcher() *до* установки диспечера событий по умолчанию.

Основной цикл событий запускается вызовом QCoreApplication::exec() и останавливается вызовом QCoreApplication::exit(). Локальные циклы событий могут быть созданы с помощью QEventLoop.

Программы, выполняющие длительные операции, могут вызвать processEvents() с побитовым ИЛИ сочетанием различных значений QEventLoop::ProcessEventsFlag для управления тем, какие события должны быть доставлены.

QAbstractEventDispatcher также позволяет интегрировать внешний цикл событий с циклом событий Qt.

См. также QEventLoop, QCoreApplication и QThread.

Документация по функциям-членам

QAbstractEventDispatcher::QAbstractEventDispatcher(QObject *parent = nullptr)

Создает новый диспечер событий с заданным parent.

QAbstractEventDispatcher::~QAbstractEventDispatcher()

Уничтожает диспечер событий.

void QAbstractEventDispatcher::aboutToBlock()

Этот сигнал испускается перед тем, как цикл событий вызовет функцию, которая может заблокировать.

См. также awake().

void QAbstractEventDispatcher::awake()

Этот сигнал испускается после того, как цикл событий возвращается из функции, которая могла заблокировать.

См. также wakeUp() и aboutToBlock().

bool QAbstractEventDispatcher::filterNativeEvent(const QByteArray &eventType, void *message, long *result)

Отправляет message через фильтры событий, которые были установлены с помощью installNativeEventFilter(). Эта функция возвращает false, как только фильтр событий вернет false, и false в противном случае, чтобы указать, что обработка события должна быть продолжена.

Подклассы QAbstractEventDispatcher *должны* вызывать эту функцию для *всех* сообщений, полученных от системы, чтобы обеспечить совместимость с любыми расширениями, которые могут быть использованы в приложении. Тип события eventType специфичен для плагина платформы, выбранного во время выполнения, и может использоваться для приведения message к правильному типу. Указатель result используется только в Windows и соответствует указателю LRESULT.

Обратите внимание, что тип message зависит от платформы. Подробности см. в QAbstractNativeEventFilter.

Эта функция была добавлена в Qt 5.0.

См. также installNativeEventFilter() и QAbstractNativeEventFilter::nativeEventFilter().

void QAbstractEventDispatcher::installNativeEventFilter(QAbstractNativeEventFilter *filterObj)

Устанавливает обработчик событий filterObj для всех нативных событий, получаемых приложением.

Обработчик событий filterObj получает события через свою функцию nativeEventFilter(), которая вызывается для всех событий, полученных всеми потоками.

Функция nativeEventFilter() должна возвращать true, если событие должно быть отфильтровано (в этом случае остановлено). Она должна возвращать false, чтобы разрешить стандартную обработку Qt: нативное событие затем может быть преобразовано в QEvent и обработано стандартным Qt-фильтром событий, например QObject::installEventFilter().

Если установлено несколько обработчиков событий, последним установленным обработчиком будет активирован первый.

Примечание: Функция фильтра, установленная здесь, получает нативные сообщения, то есть структуры MSG или XEvent.

Для максимальной переносимости следует всегда стараться использовать объекты QEvent и QObject::installEventFilter() при возможности.

Эта функция была введена в Qt 5.0.

См. также QObject::installEventFilter().

[static] QAbstractEventDispatcher *QAbstractEventDispatcher::instance(QThread *thread = nullptr)

Возвращает указатель на объект обработчика событий для указанного thread. Если thread равен нулю, используется текущий поток. Если для указанного потока обработчик событий не существует, эта функция возвращает 0.

Примечание: Если Qt построен без поддержки потоков, аргумент thread игнорируется.

[pure virtual] void QAbstractEventDispatcher::interrupt()

Прерывает обработку событий. Обработчик событий вернётся из processEvents() как можно скорее.

[pure virtual] bool QAbstractEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags)

Обрабатывает ожидающие события, соответствующие flags, до тех пор, пока не останется больше событий для обработки. Возвращает true если событие было обработано; в противном случае возвращает false.

Эта функция особенно полезна, если у вас есть длительная операция и вы хотите показать ее прогресс, не позволяя пользователю вводить данные, используя флаг QEventLoop::ExcludeUserInputEvents.

Если в flags установлен флаг QEventLoop::WaitForMoreEvents, поведение этой функции следующее:

  • Если события доступны, эта функция возвращается после их обработки.
  • Если события недоступны, эта функция будет ждать, пока они не станут доступны, и вернется после обработки новых доступных событий.

Если флаг QEventLoop::WaitForMoreEvents не установлен в flags, и события недоступны, эта функция вернётся немедленно.

Примечание: Эта функция не обрабатывает события непрерывно; она возвращается после обработки всех доступных событий.

См. также hasPendingEvents().

[pure virtual] bool QAbstractEventDispatcher::registerEventNotifier(QWinEventNotifier *notifier)

Этот чисто виртуальный метод существует только в Windows и должен быть переопределен реализацией обработчика событий для Windows. notifier — это экземпляр QWinEventNotifier, который необходимо зарегистрировать.

Метод должен возвращать true, если регистрация notifier прошла успешно, в противном случае false.

QWinEventNotifier вызывает этот метод в своём конструкторе, и прямой вызов этого метода никогда не понадобится.

См. также QWinEventNotifier и unregisterEventNotifier().

[pure virtual] void QAbstractEventDispatcher::registerSocketNotifier(QSocketNotifier *notifier)

Регистрирует notifier в цикле событий. Подклассы должны реализовывать этот метод, чтобы связать уведомление о сокете с другим циклом событий.

int QAbstractEventDispatcher::registerTimer(int interval, Qt::TimerType timerType, QObject *object)

Регистрирует таймер с указанным interval и timerType для данного object и возвращает идентификатор таймера.

[pure virtual] void QAbstractEventDispatcher::registerTimer(int timerId, int interval, Qt::TimerType timerType, QObject *object)

Регистрирует таймер с указанным timerId, interval и timerType для данного object.

[pure virtual] QList<QAbstractEventDispatcher::TimerInfo> QAbstractEventDispatcher::registeredTimers(QObject *object) const

Возвращает список зарегистрированных таймеров для object. Структура TimerInfo имеет timerId, interval, и timerType члены.

См. также Qt::TimerType.

[pure virtual] int QAbstractEventDispatcher::remainingTime(int timerId)

Возвращает оставшееся время в миллисекундах для заданного timerId. Если таймер неактивен, возвращаемое значение будет -1. Если таймер просрочен, возвращаемое значение будет 0.

См. также Qt::TimerType.

void QAbstractEventDispatcher::removeNativeEventFilter(QAbstractNativeEventFilter *filter)

Удаляет обработчик событий filter из этого объекта. Запрос игнорируется, если такой обработчик не был установлен.

Все обработчики событий для этого объекта автоматически удаляются при уничтожении этого объекта.

Удаление обработчика событий всегда безопасно, даже во время активации обработчика событий (то есть даже из функции nativeEventFilter()).

Эта функция была введена в Qt 5.0.

См. также installNativeEventFilter() и QAbstractNativeEventFilter.

[pure virtual] void QAbstractEventDispatcher::unregisterEventNotifier(QWinEventNotifier *notifier)

Этот чисто виртуальный метод существует только в Windows и должен быть переопределен реализацией обработчика событий для Windows. notifier — это экземпляр QWinEventNotifier, который необходимо отменить.

QWinEventNotifier вызывает этот метод в своём деструкторе, и прямой вызов этого метода никогда не понадобится.

См. также QWinEventNotifier и registerEventNotifier().

[pure virtual] void QAbstractEventDispatcher::unregisterSocketNotifier(QSocketNotifier *notifier)

Отменяет регистрацию notifier из обработчика событий. Подклассы должны переопределять этот метод, чтобы связать уведомление о сокете с другим циклом событий. Реализации должны вызывать базовый метод.

[pure virtual] bool QAbstractEventDispatcher::unregisterTimer(int timerId)

Отменяет регистрацию таймера с заданным timerId. Возвращает true если операция выполнена успешно; в противном случае возвращает false.

См. также registerTimer() и unregisterTimers().

[pure virtual] bool QAbstractEventDispatcher::unregisterTimers(QObject *object)

Отменяет регистрацию всех таймеров, связанных с заданным object. Возвращает true если все таймеры были успешно удалены; в противном случае возвращает false.

См. также unregisterTimer() и registeredTimers().

[pure virtual] void QAbstractEventDispatcher::wakeUp()

Разбуждает цикл событий.

Примечание: Эта функция безопасна для использования в нескольких потоках.

См. также awake().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qabstracteventdispatcher.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API