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 –
QByteArray
message –
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
结构体。