Класс QWinEventNotifier
Класс QWinEventNotifier предоставляет поддержку функций ожидания Windows. Подробнее...
| Заголовок: | #include <QWinEventNotifier> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
| Наследует: | QObject |
Открытые функции
| 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.
[private 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-6.0/qwineventnotifier.html