PySide6.QtCore.QAbstractEventDispatcher

class QAbstractEventDispatcher

QAbstractEventDispatcher 类提供了一个管理Qt事件队列的接口。More_

PySide6.QtCore.QAbstractEventDispatcher 的继承图

概要

方法

虚拟方法

信号

静态函数

注意

本文档可能包含从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 事件循环集成。

__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构造一个新的事件调度器。

aboutToBlock()

在事件循环调用可能阻塞的函数之前,会发出此信号。

另请参阅

awake()

awake()

此信号在事件循环从可能阻塞的函数返回后发出。

另请参阅

wakeUp() aboutToBlock()

closingDown()
filterNativeEvent(eventType, message, result)
Parameters:
  • eventTypeQByteArray

  • messagevoid

  • 结果qintptr

Return type:

布尔

通过由installNativeEventFilter()设置的事件过滤器发送message。一旦事件过滤器返回true,此函数将返回true,否则返回false以表示应继续处理事件。

QAbstractEventDispatcher 的子类必须为从系统接收到的所有消息调用此函数,以确保与应用程序中可能使用的任何扩展的兼容性。事件类型 eventType 特定于运行时选择的平台插件,并可用于将消息转换为正确的类型。result 指针仅在 Windows 上使用,对应于 LRESULT 指针。

请注意,message的类型取决于平台。详情请参见QAbstractNativeEventFilter

installNativeEventFilter(filterObj)
Parameters:

filterObjQAbstractNativeEventFilter

为应用程序接收的所有本地事件安装事件过滤器 filterObj

事件过滤器 filterObj 通过其 nativeEventFilter() 函数接收事件,该函数会被所有线程接收的所有事件调用。

如果事件应该被过滤(在这种情况下,停止),nativeEventFilter() 函数应返回 true。它应返回 false 以允许正常的 Qt 处理继续:然后可以将本机事件转换为 QEvent 并由标准的 Qt event 过滤处理,例如 installEventFilter()

如果安装了多个事件过滤器,最后安装的过滤器将首先被激活。

注意

此处设置的过滤器函数接收原生消息,即MSG或XEvent结构体。

为了最大的可移植性,你应该始终尝试尽可能使用QEvent对象和installEventFilter()

另请参阅

installEventFilter()

static instance([thread=None])
Parameters:

线程QThread

Return type:

QAbstractEventDispatcher

返回指向指定thread的事件调度器对象的指针。如果threadNone,则使用当前线程。如果指定线程没有事件调度器,此函数返回None

注意

如果Qt是在没有线程支持的情况下构建的,thread参数将被忽略。

abstract interrupt()

中断事件分发。事件分发器将尽快从processEvents()返回。

abstract processEvents(flags)
Parameters:

flagsProcessEventsFlag 的组合

Return type:

布尔

处理与flags匹配的待处理事件,直到没有更多事件需要处理。如果处理了一个事件,则返回true;否则返回false

如果您有一个长时间运行的操作,并且希望通过使用ExcludeUserInputEvents标志来显示其进度而不允许用户输入,此函数特别有用。

如果在flags中设置了WaitForMoreEvents标志,此函数的行为如下:

  • 如果有事件可用,此函数在处理完它们后返回。

  • 如果没有可用的事件,此函数将等待直到有更多事件可用,并在处理新可用事件后返回。

如果未在flags中设置WaitForMoreEvents标志,并且没有可用的事件,此函数将立即返回。

注意

此函数不会连续处理事件;它在所有可用事件处理完毕后返回。

abstract registerSocketNotifier(notifier)
Parameters:

通知器QSocketNotifier

notifier注册到事件循环中。子类必须实现此方法,以便将套接字通知器绑定到另一个事件循环中。

registerTimer(interval, timerType, object)
Parameters:
Return type:

整数

此函数将在Qt 7中被移除。请使用接受Duration的重载。

为给定的object注册一个具有指定intervaltimerType的计时器,并返回计时器ID。

abstract registerTimer(timerId, interval, timerType, object)
Parameters:
  • timerId – int

  • interval – 整数

  • timerTypeTimerType

  • objectQObject

为给定的object注册一个具有指定timerIdintervaltimerType的计时器。

abstract registeredTimers(object)
Parameters:

对象QObject

Return type:

QAbstractEventDispatcher.TimerInfo的列表

返回object的已注册计时器列表。TimerInfo结构体包含timerIdintervaltimerType成员。

另请参阅

TimerType

abstract remainingTime(timerId)
Parameters:

timerId – 整数

Return type:

整数

返回给定timerId的剩余时间(以毫秒为单位)。如果计时器未激活,返回的值将为-1。如果计时器已过期,返回的值将为0。

另请参阅

TimerType

removeNativeEventFilter(filterObj)
Parameters:

filterObjQAbstractNativeEventFilter

从此对象中移除事件过滤器 filter。如果未安装此类事件过滤器,则忽略该请求。

当此对象被销毁时,此对象的所有事件过滤器将自动移除。

即使在事件过滤器激活期间(即,即使从nativeEventFilter()函数内部),删除事件过滤器也始终是安全的。

startingUp()
abstract unregisterSocketNotifier(notifier)
Parameters:

通知器QSocketNotifier

从事件调度器中注销notifier。子类必须重新实现此方法,以将套接字通知器绑定到另一个事件循环中。重新实现时必须调用基类实现。

unregisterTimer(timerId)
Parameters:

timerIdTimerId

Return type:

布尔

注销具有给定timerId的计时器。如果成功,返回true;否则返回false

abstract unregisterTimer(timerId)
Parameters:

timerId – 整数

Return type:

布尔

取消注册具有给定timerId的计时器。如果成功,返回true;否则返回false

abstract unregisterTimers(object)
Parameters:

对象QObject

Return type:

布尔

注销与给定object关联的所有计时器。如果所有计时器都成功移除,则返回true;否则返回false

abstract wakeUp()

唤醒事件循环。

另请参阅

awake()

class TimerInfo

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.timerId
PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.interval
PySide6.QtCore.QAbstractEventDispatcher.TimerInfo.timerType
__init__(id, i, t)
Parameters:

使用给定的 timerIdintervaltimerType 构造一个 TimerInfo 结构体。