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).
返回在通知中有注册的 HANDLE。
另请参阅 setHandle ().
返回
true
若通知被启用;否则返回
false
.
另请参阅 setEnabled ().
[slot]
void
QWinEventNotifier::
setEnabled
(
bool
enable
)
若 enable 为 true,通知被启用;否则通知被禁用。
另请参阅 isEnabled () 和 activated ().
注册 HANDLE hEvent 。旧 HANDLE 将被自动取消注册。
注意 :通告程序会因副作用被禁用,且需要重新启用。
另请参阅 handle () 和 setEnabled ().