Класс QWinEventNotifier
Класс QWinEventNotifier предоставляет поддержку функций ожидания Windows. Подробнее...
| Заголовок: | #include <QWinEventNotifier> |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
| Наследует: | QObject |
Этот класс был введён в Qt 5.0.
Открытые функции
| QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, QObject *parent = nullptr) | |
| QWinEventNotifier(QObject *parent = nullptr) | |
| virtual | ~QWinEventNotifier() |
| QWinEventNotifier::HANDLE | handle() const |
| bool | isEnabled() const |
| void | setHandle(QWinEventNotifier::HANDLE hEvent) |
Открытые слоты
| void | setEnabled(bool enable) |
Сигналы
| void | activated(QWinEventNotifier::HANDLE hEvent) |
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) override |
Подробное описание
Класс QWinEventNotifier позволяет использовать функции ожидания Windows асинхронным способом. С помощью этого класса вы можете зарегистрировать HANDLE события и получить уведомление, когда это событие будет сигнализировано. Состояние события не изменяется в процессе, поэтому если это событие с ручным сбросом, вам нужно будет сбросить его после уведомления.
После того, как вы создали объект события с помощью API Windows, такого как CreateEvent() или OpenEvent(), вы можете создать оповещатель событий для мониторинга дескриптора события. Если оповещатель событий включён, он будет излучать сигнал activated() всякий раз, когда соответствующий объект события сигнализирует.
Функция setEnabled() позволяет отключить и включить оповещатель событий. Обычно рекомендуется явно включать или отключать оповещатель событий. Отключённый оповещатель ничего не делает, когда объект события сигнализирует (тот же эффект, что и не создание оповещателя событий). Используйте функцию isEnabled() для определения текущего состояния оповещателя.
Наконец, вы можете использовать функцию setHandle() для регистрации нового объекта события и функцию handle() для получения дескриптора события.
Дополнительная информация: Хотя класс называется QWinEventNotifier, его можно использовать для некоторых других объектов, так называемых синхронизационных объектов, таких как процессы, потоки, таймеры ожидания.
Предупреждение: Этот класс доступен только на Windows.
Документация по функциям-членам
QWinEventNotifier::QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, QObject *parent = nullptr)
Конструирует оповещатель событий с заданным parent. Он включает оповещатель и следит за событием hEvent.
Оповещатель по умолчанию включён, т.е. он излучает сигнал activated() всякий раз, когда соответствующее событие сигнализирует. Однако рекомендуется явно включать или отключать оповещатель событий.
См. также setEnabled() и isEnabled().
QWinEventNotifier::QWinEventNotifier(QObject *parent = nullptr)
Конструирует оповещатель событий с заданным parent.
[signal] void QWinEventNotifier::activated(QWinEventNotifier::HANDLE hEvent)
Этот сигнал излучается всякий раз, когда оповещатель событий включён, а соответствующий HANDLE сигнализирует.
Состояние события не изменяется в процессе, поэтому если это событие с ручным сбросом, вам нужно будет сбросить его после уведомления.
Объект передаётся в параметре hEvent.
Примечание: Это частный сигнал. Он может использоваться в подключениях сигналов, но не может излучаться пользователем.
См. также handle().
[slot] void QWinEventNotifier::setEnabled(bool enable)
Если enable равно true, оповещатель включается; в противном случае оповещатель отключается.
См. также isEnabled() и activated().
[virtual] QWinEventNotifier::~QWinEventNotifier()
Уничтожает этот оповещатель.
[override virtual protected] bool QWinEventNotifier::event(QEvent *e)
Переопределяет: QObject::event(QEvent *e).
QWinEventNotifier::HANDLE QWinEventNotifier::handle() const
Возвращает HANDLE, который был зарегистрирован в оповещателе.
См. также setHandle().
bool QWinEventNotifier::isEnabled() const
Возвращает true если оповещатель включён; в противном случае возвращает false.
См. также setEnabled().
void QWinEventNotifier::setHandle(QWinEventNotifier::HANDLE hEvent)
Регистрирует HANDLE hEvent. Старый HANDLE будет автоматически снят с регистрации.
Примечание: Оповещатель будет отключён как побочный эффект и должен быть повторно включён.
См. также handle() и setEnabled().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qwineventnotifier.html