QWinEventNotifier 类

QWinEventNotifier 类提供了对 Windows 等待函数的支持。更多信息...

头部文件 #include <QWinEventNotifier>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承自 QObject

公共函数

QWinEventNotifier(QObject *parent = nullptr)
QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, QObject *parent = nullptr)
virtual~QWinEventNotifier()
QWinEventNotifier::HANDLEhandle() const
boolisEnabled() const
voidsetHandle(QWinEventNotifier::HANDLE hEvent)

公共槽

voidsetEnabled(bool enable)

信号

voidactivated(QWinEventNotifier::HANDLE hEvent)

重新实现受保护的函数

virtual boolevent(QEvent *e) override

详细说明

QWinEventNotifier 类使您能够在 Windows 上以异步方式使用 wait 函数。使用此类,您可以注册一个 HANDLE 到事件,并在该事件被通知时获取通知。在此过程中不会修改事件的状态,因此如果它是手动重置事件,则在通知后需要重置它。

一旦您使用 Windows API 比如 CreateEvent() 或 OpenEvent() 创建了一个事件对象,您就可以创建一个事件通知器来监控事件句柄。如果事件通知器已启用,则每当相应的对象被通知时,它将发射 activated() 信号。

setEnabled() 函数允许您启用或禁用事件通知器。通常建议明确启用或禁用事件通知器。禁用的通知器在事件对象被通知时不会执行任何操作(与未创建事件通知器相同的效果)。使用 isEnabled() 函数以确定通知器的当前状态。

最后,您可以使用 setHandle() 函数注册一个新的事件对象,并使用 handle() 函数检索事件句柄。

更多信息:尽管类的名称为 QWinEventNotifier,但它可以用于某些其他所谓同步对象,如进程、线程、可等待定时器。

警告:此类仅适用于Windows。

成员函数文档

[显式] QWinEventNotifier::QWinEventNotifier(QObject *parent = nullptr)

使用给定的父对象构造一个事件通知器。

[显式] QWinEventNotifier::QWinEventNotifier(QWinEventNotifier::HANDLE hEvent, QObject *parent = nullptr)

使用给定的父对象构造一个事件通知器。它启用通知器并监视事件hEvent

默认情况下,通知器是启用的,即当相应的事件被触发时,它会发出activated()信号。然而,通常建议明确启用或禁用事件通知器。

另请参阅setEnabled() 和 isEnabled

[虚拟无异常] QWinEventNotifier::~QWinEventNotifier()

销毁此通知器。

[私有信号] void QWinEventNotifier::activated(QWinEventNotifier::HANDLE hEvent)

每当事件通知器启用且相应的HANDLE被触发时,都会发出此信号。

在此过程中不修改事件的状

态,因此如果它是一个手动重置事件,您将需要在通知后重置它。

对象通过hEvent参数传递。

注意:这是一个私有信号。它可以用于信号连接,但不能由用户发出。

另请参阅handle

[重写虚拟受保护] 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::setEnabled(bool enable)

如果enable为true,则启用通知器;否则禁用通知器。

另请参阅isEnabled() 和 activated

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

注册HANDLE hEvent。将自动注销旧HANDLE。

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

另请参阅handle() 和 setEnabled

© 2024 Qt公司有限公司。本文档中包含的贡献版权属于各自的所有者。提供的文档是根据自由软件基金会发布的、在GNU自由文档许可版本1.3下的条款许可的。Qt及其相关标志是Qt公司在芬兰以及/或全球其他国家的商标。所有其他商标均为各自所有者的财产。