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 上以异步方式使用 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,则启用通知器;否则禁用通知器。
void QWinEventNotifier::setHandle(QWinEventNotifier::HANDLE hEvent)
注册HANDLE hEvent。将自动注销旧HANDLE。
注意:通知器将作为副作用禁用并需要重新启用。
另请参阅handle() 和 setEnabled。
© 2024 Qt公司有限公司。本文档中包含的贡献版权属于各自的所有者。提供的文档是根据自由软件基金会发布的、在GNU自由文档许可版本1.3下的条款许可的。Qt及其相关标志是Qt公司在芬兰以及/或全球其他国家的商标。所有其他商标均为各自所有者的财产。