- class QEventLoop#
QEventLoop
类提供了进入和离开事件循环的途径。更多…简介#
方法#
def
__init__()
def
exec()
def
exec_()
def
isRunning()
def
processEvents()
def
wakeUp()
槽#
注意
本说明书可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式告诉我们。
详细说明#
在任何时候,您都可以创建一个
QEventLoop
对象,并通过调用它的exec()
来启动本地事件循环。在事件循环内部,调用exit()
将强制exec()
返回。- class ProcessEventsFlag#
(继承自
enum.Flag
) 此枚举控制由processEvents()
函数处理的事件类型。常量
描述
QEventLoop.AllEvents
所有事件。注意
DeferredDelete
事件会特别处理。有关更多详细信息,请参阅deleteLater()
。QEventLoop.ExcludeUserInputEvents
不处理用户输入事件,如ButtonPress和KeyPress。注意,事件不会被丢弃;它们将在没有 ExcludeUserInputEvents 标志的情况下,在下一次调用
processEvents()
时再次传递。QEventLoop.ExcludeSocketNotifiers
不处理套接字通知事件。注意,事件不会被丢弃;它们将在没有 ExcludeSocketNotifiers 标志的情况下,在下一次调用
processEvents()
时再次传递。QEventLoop.WaitForMoreEvents
如果当前没有待处理事件,则等待事件。
另请参阅
使用给定的
parent
构造事件循环对象。- exec([flags=QEventLoop.ProcessEventsFlag.AllEvents])#
- 参数:
flags –
ProcessEventsFlag
的组合- 返回类型:
int
进入主事件循环并等待调用
exit()
。返回传递给exit()
的值。如果指定了
flags
,则只处理由flags
允许的事件类型。需要调用此函数以启动事件处理。主事件循环从窗口系统接收事件并将这些事件分派到应用程序小部件。
一般来说,在调用
exec
()之前不会发生用户交互。作为一个特例,模态小部件(例如QMessageBox)可以在调用exec
()之前使用,因为模态小部件使用自己的局部事件循环。要使您的应用程序执行空闲处理(即在无挂起事件时执行特殊函数),请使用超时为0的
QTimer
。更复杂的中断处理方案可以使用processEvents()
实现。另请参阅
- exec_([flags=QEventLoop.AllEvents])#
- 参数:
flags –
ProcessEventsFlag
的组合- 返回类型:
int
- exit([returnCode=0])#
- 参数:
returnCode – int
告诉事件循环退出时使用一个返回码。
在此函数被调用后,事件循环从
exec()
的调用运�回。函数exec()
返回returnCode
。通常情况下,返回码为0表示成功,任何非零值表示错误。
注意,与同名的C库函数不同,此函数确实返回给调用者——停止的是事件处理。
- isRunning()#
- 返回类型:
bool
如果事件循环正在运行,则返回
true
;否则返回false
。认为事件循环从调用exec()
开始运行,直到调用exit()
为止。- processEvents([flags=QEventLoop.ProcessEventsFlag.AllEvents])#
- 参数:
flags –
ProcessEventsFlag
的组合- 返回类型:
bool
处理符合
flags
的某些挂起事件。如果处理了挂起事件,则返回true
;否则返回false
。此函数特别有用,如果您有一个运行时间较长的操作,并且希望在允许用户输入的情况下显示其进度;例如,使用
ExcludeUserInputEvents
标志。此函数是
processEvents()
的包装函数。有关该函数的详细信息,请参阅其文档。- processEvents(flags, deadline)
- 参数:
flags –
ProcessEventsFlag
的组合deadline -
QDeadlineTimer
处理符合
flags
的挂起事件,直到deadline
到期,或者没有更多事件要处理,以较早者为准。此函数特别有用,如果您有一个运行时间较长的操作,并且希望在允许用户输入的情况下显示其进度,例如,使用ExcludeUserInputEvents
标志。备注
此函数不会持续处理事件;它在处理完所有可用事件后返回。
指定
WaitForMoreEvents
标志没有意义,并且将被忽略。
- processEvents(flags, maximumTime)
- 参数:
flags –
ProcessEventsFlag
的组合maximumTime - int
这是一个重载函数。
处理匹配
flags
的挂起事件,最长为maxTime
毫秒,或者直到没有更多事件要处理,以较短者为准。相当于调用
processEvents(flags, QDeadlineTimer(maxTime));
- quit()#
告诉事件循环正常退出。
等同于 exit(0)。
- wakeUp()#
唤醒事件循环。
另请参阅