QWinEventNotifier 类

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

头: #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 类使以异步方式在 Windows 使用等待函数成为可能。采用此类,可以将 HANDLE 注册成事件,并获得通知在告知该事件时。在过程中不会修改事件状态,因此,若手动重置事件,需要重置它在通知后。

一旦使用 Windows API (譬如 CreateEvent() 或 OpenEvent()) 创建事件对象,就可以创建事件通知以监视事件句柄。若事件通知被启用,它会发射 activated () 信号每当告知相应事件对象时。

The 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 )

注册 HANDLE hEvent 。旧 HANDLE 将被自动取消注册。

注意 :通告程序会因副作用被禁用,且需要重新启用。

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