QWinEventNotifier Class
QWinEventNotifier 类为 Windows 的 Wait 函数提供了支持。更多内容...
| 头文件: | #include <QWinEventNotifier> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 继承自: | QObject |
公共函数
| QWinEventNotifier(QObject *parent = nullptr) | |
| QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, 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 类使得能够以异步方式在窗口上使用等待函数。通过该类,您可以将一个 HANDLE 注册到某个事件上,并在该事件被触发时收到通知。 在此过程中,事件的状态不会被修改,因此如果是需要手动重置的事件,您需要在收到通知后将其重置。
一旦您使用 Windows API(如 CreateEvent() 或 OpenEvent())创建了事件对象,就可以创建一个事件通知器来监视该事件句柄。如果启用了事件通知器,每当相应的事件对象被触发时,它都会发出activated() 信号。
setEnabled() 函数允许您启用或禁用事件通知器。通常建议显式地启用或禁用事件通知器。当事件对象被触发时,已禁用的通知器不会执行任何操作(效果等同于未创建事件通知器)。请使用isEnabled() 函数来确定通知器的当前状态。
最后,您可以使用setHandle() 函数注册一个新的事件对象,并使用handle() 函数获取事件句柄。
更多信息:尽管该类名为 QWinEventNotifier,但它也可用于某些其他对象,即所谓的同步对象,例如进程、线程和可等待定时器。
警告:该 类仅在 Windows 上可用。
成员函数文档
[explicit] QWinEventNotifier::QWinEventNotifier(QObject *parent = nullptr)
使用给定的parent 构建一个事件通知器。
[explicit] QWinEventNotifier::QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, QObject *parent = nullptr)
使用给定的parent 构建一个事件通知器。它会启用该通知器,并监听hEvent 事件。
该通知器默认处于启用状态,即每当相应的事件被触发时,它都会发出activated()信号。不过,通常建议显式地启用或禁用该事件通知器。
另请参阅 setEnabled() 和isEnabled()。
[virtual noexcept] QWinEventNotifier::~QWinEventNotifier()
销毁此通知器。
[private signal] void QWinEventNotifier::activated(QWinEventNotifier::HANDLE hEvent)
每当事件通知器启用且相应的 HANDLE 被触发时,都会发出此信号。
在此过程中事件的状态不会被修改,因此如果这是一个手动复位事件,您需要在通知后将其复位。
该对象通过hEvent 参数传递。
注意:这是一个 私有信号。它可以在信号连接中使用,但用户无法发出该信号。
另请参阅 handle()。
[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()。
[slot] void QWinEventNotifier::setEnabled(bool enable)
如果enable 为真,则通知器处于启用状态;否则,通知器处于禁用状态。
另请参阅 isEnabled() 和activated()。
void QWinEventNotifier::setHandle(QWinEventNotifier::HANDLE hEvent)
注册 HANDLEhEvent 。旧的 HANDLE 将自动被注销。
注意:作为副作用,通知器将被禁用,需要重新启用。
另请参阅 handle() 和setEnabled()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.