class QAbstractEventDispatcher#

QAbstractEventDispatcher`>类提供了一个管理Qt事件队列的接口。更多...

Inheritance diagram of PySide6.QtCore.QAbstractEventDispatcher

概要#

方法#

虚拟方法#

信号#

静态函数#

注意

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

详细描述#

事件分派器从窗口系统和其它源接收事件。然后将它们发送到QCoreApplication或QApplication实例进行处理和交付。QAbstractEventDispatcher提供对事件交付的精细控制。

对于事件处理的简单控制,请使用processEvents()

为了更好地控制应用程序的事件循环,请调用instance()并在返回的QAbstractEventDispatcher对象上调用函数。如果您想使用自己的QAbstractEventDispatcher实例或子类,必须使用setEventDispatcher()setEventDispatcher()在默认事件分发器安装之前安装。

主事件循环通过调用exec()启动,通过调用exit()停止。可以使用QEventLoop创建局部事件循环。

执行长时间操作的程序可以通过调用processEvents()并使用各个ProcessEventsFlag值的按位或组合来控制应传递哪些事件。

QAbstractEventDispatcher还可以将外部事件循环与Qt事件循环集成。

__init__([parent=None])#
参数:

parentQObject

构建一个具有给定parent的新事件分发器。

aboutToBlock()#

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

另请参阅

awake()

awake()#

在事件循环从一个可能阻塞的函数返回后,此信号将被触发。

另请参阅

wakeUp() aboutToBlock()

closingDown()#
filterNativeEvent(eventType, message, result)#
参数:
  • eventTypeQByteArray

  • messagevoid

  • resultqintptr

返回类型:

bool

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

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

请注意,message 的类型取决于平台。有关详细信息,请参阅 QAbstractNativeEventFilter

installNativeEventFilter(filterObj)#
参数:

filterObjQAbstractNativeEventFilter

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

事件过滤器filterObj通过其nativeEventFilter()函数接收事件,该函数用于处理所有线程收到的所有事件。

如果需要过滤事件(在此情况下,停止事件),则nativeEventFilter()函数应返回true。如果应允许正常Qt处理继续:原生事件可以转换为QEvent并由中国标Qtevent过滤处理,例如installEventFilter()

如果安装了多个事件过滤器,则最后安装的过滤器将首先启动。

注意

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

为了最大化的可移植性,您应该尽量总是使用QEvent对象和installEventFilter()

另请参阅

installEventFilter()

static instance([thread=None])#
参数:

threadQThread

返回类型:

QAbstractEventDispatcher

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

注意

如果Qt没有构建线程支持,则忽略thread参数。

abstract interrupt()#

中断事件调度。事件调度器将尽快从processEvents()返回。

abstract processEvents(flags)#
参数:

flags – 合并了ProcessEventsFlag

返回类型:

bool

处理所有等待事件,直到没有要处理的事件。如果处理了事件则返回true;否则返回false

此功能特别适用于有长时间运行操作且希望在不允许用户输入的情况下显示其进度时使用ExcludeUserInputEvents标志。

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

  • 如果有可用的事件,此函数将在处理完这些事件后返回。

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

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

注意

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

abstract registerSocketNotifier(notifier)#
参数:

notifierQSocketNotifier

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

abstract registerTimer(timerId, interval, timerType, object)#
参数:

注册一个指定了timerIdintervaltimerType的事件object

registerTimer(interval, timerType, object)
参数:
返回类型:

int

为指定的intervaltimerType注册一个事件object,并返回定时器ID。

abstract registeredTimers(object)#
参数:

objectQObject

返回类型:

. list of QAbstractEventDispatcher.TimerInfo

返回对象注册的计时器列表。 TimerInfo 结构体具有 timerIdintervaltimerType 成员。

另请参阅

计时器类型

abstract remainingTime(timerId)#
参数:

timerId – int

返回类型:

int

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

另请参阅

计时器类型

removeNativeEventFilter(filterObj)#
参数:

filterObjQAbstractNativeEventFilter

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

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

在事件过滤器活动期间(即在 nativeEventFilter() 函数内部)安全地删除事件过滤器。

startingUp()#
abstract unregisterSocketNotifier(notifier)#
参数:

notifierQSocketNotifier

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

abstract unregisterTimer(timerId)#
参数:

timerId – int

返回类型:

bool

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

抽象 unregisterTimers(对象)#
参数:

objectQObject

返回类型:

bool

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

抽象 wakeUp()#

唤醒事件循环。

另请参阅

awake()