PySide6.QtCore.QAbstractEventDispatcher¶
- class QAbstractEventDispatcher¶
QAbstractEventDispatcher类提供了一个管理Qt事件队列的接口。More_…概要¶
方法¶
def
__init__()def
registerTimer()
虚拟方法¶
def
closingDown()def
interrupt()def
processEvents()def
registerTimer()def
remainingTime()def
startingUp()def
wakeUp()
信号¶
def
aboutToBlock()def
awake()
静态函数¶
def
instance()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
事件分发器从窗口系统和其他来源接收事件。然后将其发送到
QCoreApplication或QApplication实例进行处理和传递。QAbstractEventDispatcher提供了对事件传递的细粒度控制。为了简单控制事件处理,请使用
processEvents()。为了更精细地控制应用程序的事件循环,调用
instance()并在返回的QAbstractEventDispatcher对象上调用函数。如果你想使用自己的QAbstractEventDispatcher实例或QAbstractEventDispatcher子类的实例,你必须在默认事件调度器安装之前使用setEventDispatcher()或setEventDispatcher()安装它。主事件循环通过调用
exec()启动,并通过调用exit()停止。可以使用QEventLoop创建本地事件循环。执行长时间操作的程序可以调用
processEvents(),并使用各种ProcessEventsFlag值的按位或组合来控制应传递哪些事件。QAbstractEventDispatcher还允许将外部事件循环与 Qt 事件循环集成。使用给定的
parent构造一个新的事件调度器。- aboutToBlock()¶
在事件循环调用可能阻塞的函数之前,会发出此信号。
另请参阅
- awake()¶
此信号在事件循环从可能阻塞的函数返回后发出。
另请参阅
- closingDown()¶
- filterNativeEvent(eventType, message, result)¶
- Parameters:
eventType –
QByteArraymessage –
void结果 –
qintptr
- Return type:
布尔
通过由
installNativeEventFilter()设置的事件过滤器发送message。一旦事件过滤器返回true,此函数将返回true,否则返回false以表示应继续处理事件。QAbstractEventDispatcher的子类必须为从系统接收到的所有消息调用此函数,以确保与应用程序中可能使用的任何扩展的兼容性。事件类型eventType特定于运行时选择的平台插件,并可用于将消息转换为正确的类型。result指针仅在 Windows 上使用,对应于 LRESULT 指针。请注意,
message的类型取决于平台。详情请参见QAbstractNativeEventFilter。- installNativeEventFilter(filterObj)¶
- Parameters:
filterObj –
QAbstractNativeEventFilter
为应用程序接收的所有本地事件安装事件过滤器
filterObj。事件过滤器
filterObj通过其nativeEventFilter()函数接收事件,该函数会被所有线程接收的所有事件调用。如果事件应该被过滤(在这种情况下,停止),
nativeEventFilter()函数应返回 true。它应返回 false 以允许正常的 Qt 处理继续:然后可以将本机事件转换为QEvent并由标准的 Qtevent过滤处理,例如installEventFilter()。如果安装了多个事件过滤器,最后安装的过滤器将首先被激活。
注意
此处设置的过滤器函数接收原生消息,即MSG或XEvent结构体。
为了最大的可移植性,你应该始终尝试尽可能使用
QEvent对象和installEventFilter()。另请参阅
返回指向指定
thread的事件调度器对象的指针。如果thread是None,则使用当前线程。如果指定线程没有事件调度器,此函数返回None。注意
如果Qt是在没有线程支持的情况下构建的,
thread参数将被忽略。- abstract interrupt()¶
中断事件分发。事件分发器将尽快从
processEvents()返回。- abstract processEvents(flags)¶
- Parameters:
flags –
ProcessEventsFlag的组合- Return type:
布尔
处理与
flags匹配的待处理事件,直到没有更多事件需要处理。如果处理了一个事件,则返回true;否则返回false。如果您有一个长时间运行的操作,并且希望通过使用
ExcludeUserInputEvents标志来显示其进度而不允许用户输入,此函数特别有用。如果在
flags中设置了WaitForMoreEvents标志,此函数的行为如下:如果有事件可用,此函数在处理完它们后返回。
如果没有可用的事件,此函数将等待直到有更多事件可用,并在处理新可用事件后返回。
如果未在
flags中设置WaitForMoreEvents标志,并且没有可用的事件,此函数将立即返回。注意
此函数不会连续处理事件;它在所有可用事件处理完毕后返回。
- abstract registerSocketNotifier(notifier)¶
- Parameters:
通知器 –
QSocketNotifier
将
notifier注册到事件循环中。子类必须实现此方法,以便将套接字通知器绑定到另一个事件循环中。- registerTimer(interval, timerType, object)¶
此函数将在Qt 7中被移除。请使用接受Duration的重载。
为给定的
object注册一个具有指定interval和timerType的计时器,并返回计时器ID。- abstract registerTimer(timerId, interval, timerType, object)
为给定的
object注册一个具有指定timerId、interval和timerType的计时器。返回
object的已注册计时器列表。TimerInfo结构体包含timerId、interval和timerType成员。另请参阅
- abstract remainingTime(timerId)¶
- Parameters:
timerId – 整数
- Return type:
整数
返回给定
timerId的剩余时间(以毫秒为单位)。如果计时器未激活,返回的值将为-1。如果计时器已过期,返回的值将为0。另请参阅
- removeNativeEventFilter(filterObj)¶
- Parameters:
filterObj –
QAbstractNativeEventFilter
从此对象中移除事件过滤器
filter。如果未安装此类事件过滤器,则忽略该请求。当此对象被销毁时,此对象的所有事件过滤器将自动移除。
即使在事件过滤器激活期间(即,即使从
nativeEventFilter()函数内部),删除事件过滤器也始终是安全的。- startingUp()¶
- abstract unregisterSocketNotifier(notifier)¶
- Parameters:
通知器 –
QSocketNotifier
从事件调度器中注销
notifier。子类必须重新实现此方法,以将套接字通知器绑定到另一个事件循环中。重新实现时必须调用基类实现。注销具有给定
timerId的计时器。如果成功,返回true;否则返回false。- abstract unregisterTimer(timerId)
- Parameters:
timerId – 整数
- Return type:
布尔
取消注册具有给定
timerId的计时器。如果成功,返回true;否则返回false。注销与给定
object关联的所有计时器。如果所有计时器都成功移除,则返回true;否则返回false。- abstract wakeUp()¶
唤醒事件循环。
另请参阅
- class TimerInfo¶
概要¶
方法¶
def
__init__()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
- PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.timerId¶
- PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.interval¶
- PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.timerType¶
使用给定的
timerId、interval和timerType构造一个TimerInfo结构体。