QWinEventNotifier Class

QWinEventNotifier 类为 Windows 等待函数提供支持。更多

Header: #include <QWinEventNotifier>
CMake.QWinEventNotifier 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 为 true,则启用通知器;否则禁用通知器。

另请参阅 isEnabled() 和activated()。

void QWinEventNotifier::setHandle(QWinEventNotifier::HANDLE hEvent)

注册 HANDLEhEvent 。旧的 HANDLE 将自动取消注册。

注意:作为副作用,通知器将被禁用,需要重新启用。

另请参阅 handle() 和setEnabled()。

© 2025 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.