QAbstractEventDispatcher Class Reference

[QtCore module]

该QAbstractEventDispatcher类提供了一个接口来管理Qt的事件队列中。More…

继承QObject

Methods

  • __init__ (self, QObject parent = None)
  • closingDown (self)
  • bool filterEvent (self, sip.voidptr message)
  • flush (self)
  • bool hasPendingEvents (self)
  • interrupt (self)
  • bool processEvents (self, QEventLoop.ProcessEventsFlags flags)
  • list-of-tuple-of-int-int registeredTimers (self, QObject object)
  • registerSocketNotifier (self, QSocketNotifier notifier)
  • int registerTimer (self, int interval, QObject object)
  • registerTimer (self, int timerId, int interval, QObject object)
  • callable setEventFilter (self, callable filter)
  • startingUp (self)
  • unregisterSocketNotifier (self, QSocketNotifier notifier)
  • bool unregisterTimer (self, int timerId)
  • bool unregisterTimers (self, QObject object)
  • wakeUp (self)

Static Methods

  • QAbstractEventDispatcher instance (QThread thread = None)

Qt Signals

  • void aboutToBlock ()
  • void awake ()

Detailed Description

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

事件调度器接收来自窗口系统和其他来源的事件。它然后将它们发送到QCoreApplication or QApplication例如用于处理和传递。 QAbstractEventDispatcher提供细粒度的控制权事件传递。

对于事件的处理使用简单的控制QCoreApplication.processEvents( ) 。

对于应用程序的事件循环的精细控制,呼叫instance( )并调用函数返回的QAbstractEventDispatcher对象。如果你想用你自己的QAbstractEventDispatcher的QAbstractEventDispatcher子类或实例,您必须创建您的实例before创建QApplication对象。

主事件循环是通过调用启动QCoreApplication.exec( ) ,并停止通过调用QCoreApplication.exit( ) 。这样建立的本地事件循环QEventLoop

执行长时间操作的程序可以调用processEvents( )用按位或各种组合QEventLoop.ProcessEventsFlag值来控制哪些事件应交付。

QAbstractEventDispatcher还允许一个外部事件循环的Qt的事件循环的集成。例如, Motif的扩展包括QAbstractEventDispatcher的重新实现,合并Qt和Motif的事件一起。


Method Documentation

  1. QAbstractEventDispatcher.__init__ (self, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个新的事件调度给定的parent

  1. QAbstractEventDispatcher.closingDown (self)
  1. bool QAbstractEventDispatcher.filterEvent (self, sip.voidptr message)

发送message通过被设置的事件过滤器setEventFilter( ) 。如果没有事件过滤器被设置,这个函数返回False ,否则,这个函数返回的事件过滤器函数的结果。

的子类QAbstractEventDispatcher must调用此函数为all从系统收到的信息,以确保与可在应用中使用的任何扩展兼容性。

注意,类型message依赖于平台。看QAbstractEventDispatcher.EventFilter了解详情。

See also setEventFilter( ) 。

  1. QAbstractEventDispatcher.flush (self)

这种方法是抽象的,应在任何子类中重新实现。

刷新事件队列。这通常几乎立即返回。不执行任何操作平台上比X11等。

  1. bool QAbstractEventDispatcher.hasPendingEvents (self)

这种方法是抽象的,应在任何子类中重新实现。

返回True如果有一个事件的等待,否则返回False 。

  1. QAbstractEventDispatcher QAbstractEventDispatcher.instance (QThread thread = None)

[

返回一个指向事件调度对象指定thread。如果thread为零时,当前线程被使用。如果没有事件调度器存在指定的线程,这个函数返回0 。

Note:如果Qt的内置,无需线程的支持,thread参数将被忽略。

  1. QAbstractEventDispatcher.interrupt (self)

这种方法是抽象的,应在任何子类中重新实现。

]($docs-qabstracteventdispatcher.html)

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

  1. bool QAbstractEventDispatcher.processEvents (self, QEventLoop.ProcessEventsFlags flags)

这种方法是抽象的,应在任何子类中重新实现。

进程挂起的匹配事件flags直到有没有更多的事件来处理。返回True如果一个事件被处理,否则返回False 。

如果你有一个长期运行的操作,要显示其进展,而不允许用户输入,此功能特别有用,即通过使用QEventLoop.ExcludeUserInputEvents标志。

如果QEventLoop.WaitForMoreEvents标志被设置在flags,这个函数的行为如下:

  • If events are available, this function returns after processing them.
  • If no events are available, this function will wait until more are available and return after processing newly available events.

如果QEventLoop.WaitForMoreEvents标志没有被设置在flags,并没有事件的情况下,这个函数会立即返回。

Note:此函数不连续处理事件,它返回后,所有可用的事件被处理。

See also hasPendingEvents( ) 。

  1. list-of-tuple-of-int-int QAbstractEventDispatcher.registeredTimers (self, QObject object)

这种方法是抽象的,应在任何子类中重新实现。

返回注册定时器的清单object。计时器ID是每对中的第一个成员;的间隔是第二。

  1. QAbstractEventDispatcher.registerSocketNotifier (self, QSocketNotifier notifier)

这种方法是抽象的,应在任何子类中重新实现。

Registers notifier与事件循环。子类必须实现此方法,以配合一个套接字通知到另一个事件循环。

  1. int QAbstractEventDispatcher.registerTimer (self, int interval, QObject object)

注册一个定时器指定interval对于给定的object

  1. QAbstractEventDispatcher.registerTimer (self, int timerId, int interval, QObject object)

这种方法是抽象的,应在任何子类中重新实现。

注册一个定时器指定timerIdinterval对于给定的object

  1. callable QAbstractEventDispatcher.setEventFilter (self, callable filter)

filter参数也可能没有。

取代了事件过滤功能,这QAbstractEventDispatcherfilter并返回被替换的事件过滤功能。只有当前事件过滤器函数被调用。如果你想使用这两个过滤功能,节省更换EventFilter在一个地方,你可以调用它。

这里设置的事件过滤器函数被调用,用于从事件之前的系统事件循环采取的所有消息被分派到各自的目标,包括并不意味着Qt的对象的消息。

事件过滤器函数应该返回True,如果要过滤的信息, (即停止) 。它应该返回False ,以便处理消息继续。

缺省情况下,事件过滤功能设定(即,这个函数返回一个空EventFilter它第一次被调用) 。

  1. QAbstractEventDispatcher.startingUp (self)
  1. QAbstractEventDispatcher.unregisterSocketNotifier (self, QSocketNotifier notifier)

这种方法是抽象的,应在任何子类中重新实现。

取消注册notifier从事件调度。子类必须重写此方法,以配合一个套接字通知到另一个事件循环。重新实现必须调用基实现。

  1. bool QAbstractEventDispatcher.unregisterTimer (self, int timerId)

这种方法是抽象的,应在任何子类中重新实现。

注销定时器与给定timerId。成功返回True ,否则返回False 。

See also registerTimer()和unregisterTimers( ) 。

  1. bool QAbstractEventDispatcher.unregisterTimers (self, QObject object)

这种方法是抽象的,应在任何子类中重新实现。

取消注册所有与给定的相关联的定时器object。返回True如果所有的计时器都成功删除,否则返回False 。

See also unregisterTimer()和registeredTimers( ) 。

  1. QAbstractEventDispatcher.wakeUp (self)

这种方法是抽象的,应在任何子类中重新实现。

唤醒事件循环。

Note:这个功能是thread-safe

See also awake( ) 。


Qt Signal Documentation

  1. void aboutToBlock ()

这是该信号的默认超载。

事件循环调用,可以阻止一个函数之前,这个信号被发射。

See also awake( ) 。

  1. void awake ()

这是该信号的默认超载。

从可以阻止一个函数的事件循环返回后这个信号被发射。

See also wakeUp()和aboutToBlock( ) 。