Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QEventLoop Class Reference
[QtCore module]

该QEventLoop类提供进入和离开事件循环的方法。More...

继承QObject

Types

Methods


Detailed Description

该QEventLoop类提供进入和离开事件循环的方法。

在任何时候,你可以创建一个QEventLoop对象,并调用exec_( )就可以启动一个本地事件循环。从事件循环中,调用exit( )将强制exec_( )返回。


Type Documentation

QEventLoop.ProcessEventsFlag

该枚举控制由处理的事件类型processEvents()函数。

Constant Value Description
QEventLoop.AllEvents 0x00 所有事件。需要注意的是DeferredDelete事件经过特殊加工。看QObject.deleteLater( )的更多细节。
QEventLoop.ExcludeUserInputEvents 0x01 不处理用户输入事件,如ButtonPress和按键。请注意,该事件不会被丢弃,它们会在下一次交付processEvents()被调用,而不ExcludeUserInputEvents标志。
QEventLoop.ExcludeSocketNotifiers 0x02 不处理套接字通知事件。请注意,该事件不会被丢弃,它们会在下一次交付processEvents()被调用,而不ExcludeSocketNotifiers标志。
QEventLoop.WaitForMoreEvents 0x04 等待事件,如果没有未处理的事件都可用。
QEventLoop.DeferredDeletion 0x10 过时 - 不要使用。

该ProcessEventsFlags类型是一个typedef为QFlags\u003cProcessEventsFlag\u003e 。它存储ProcessEventsFlag值的或组合。

See also processEvents( ) 。


Method Documentation

QEventLoop.__init__ (self, QObject parent = None)

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

构造一个事件循环对象与给定parent

int QEventLoop.exec_ (self, ProcessEventsFlags flags = QEventLoop.AllEvents)

进入主事件循环并等待,直到exit()被调用。返回传递给该值exit( ) 。

If flags被指定,由所允许的类型的唯一事件flags将被处理。

有必要调用这个函数来启动事件处理。主事件循环接收事件从窗口系统并调度这些应用程序的部件。

一般来说,没有用户交互可以调用exec ( )之前发生。作为一种特殊的情况下,模式对话框喜欢QMessageBox调用exec (之前可以使用) ,因为模式对话框使用自己的本地事件循环。

为了使您的应用程序执行閒置处理(即执行一个特殊的功能,每当有没有挂起的事件) ,请使用QTimer与0超时。更复杂的空閒处理方案可以用来实现processEvents( ) 。

See also QApplication.quit( )exit()和processEvents( ) 。

QEventLoop.exit (self, int returnCode = 0)

讲述了事件循环退出,并返回代码。

在此之后函数被调用时,事件循环从调用返回exec_( ) 。该exec_( )函数返回returnCode

按照惯例,returnCode0意味着成功,而任何非零值表示错误。

请注意,与同名的C库函数,这个函数does返回给调用者 - 它是事件处理,停止。

See also QCoreApplication.quit( )quit()和exec_( ) 。

bool QEventLoop.isRunning (self)

如果事件循环运行,则返回True ,否则返回False 。事件循环被认为是从时间上运行时exec_( )被调用,直到exit()被调用。

See also exec_()和exit( ) 。

bool QEventLoop.processEvents (self, ProcessEventsFlags flags = QEventLoop.AllEvents)

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

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

这个函数是一个简单的包装器QAbstractEventDispatcher.processEvents( ) 。查看该功能的详细信息的文档。

QEventLoop.processEvents (self, ProcessEventsFlags flags, int maximumTime)

匹配过程中挂起的事件flags最多maxTime毫秒,或直到没有更多的事件来处理,以较短者为准。如果你有一个长期运行的操作,要显示其进展,而不允许用户输入,此功能特别有用,即通过使用ExcludeUserInputEvents标志。

Notes:

QEventLoop.quit (self)

这种方法也是一个Qt槽与C + +的签名void quit()

讲述了事件循环正常退出。

同出口(0)。

See also QCoreApplication.quit()和exit( ) 。

QEventLoop.wakeUp (self)

唤醒事件循环。

See also QAbstractEventDispatcher.wakeUp( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5