目录
- Kivy 基础
EventLoopEventLoopBaseEventLoopBase.add_event_listener()EventLoopBase.add_input_provider()EventLoopBase.add_postproc_module()EventLoopBase.async_idle()EventLoopBase.close()EventLoopBase.dispatch_input()EventLoopBase.ensure_window()EventLoopBase.exit()EventLoopBase.idle()EventLoopBase.on_pause()EventLoopBase.on_start()EventLoopBase.on_stop()EventLoopBase.post_dispatch_input()EventLoopBase.remove_android_splash()EventLoopBase.remove_event_listener()EventLoopBase.remove_input_provider()EventLoopBase.remove_postproc_module()EventLoopBase.run()EventLoopBase.set_window()EventLoopBase.start()EventLoopBase.stop()EventLoopBase.touches
ExceptionHandlerExceptionManagerExceptionManagerBaseasync_runTouchApp()runTouchApp()stopTouchApp()
Kivy 基础¶
该模块包含Kivy的核心功能,并非面向最终用户。欢迎浏览,但请注意,直接调用这些方法可能会导致不可预测的行为,因为这些调用直接访问了应用程序的事件循环。
- kivy.base.EventLoop = <kivy.base.EventLoopBase object>¶
事件循环实例
- class kivy.base.EventLoopBase[源代码]¶
-
主事件循环。该循环负责处理输入的更新以及事件的派发。
- dispatch_input()[源代码]¶
由
EventLoopBase.idle()调用,用于从输入提供者读取事件,将事件传递给后处理程序,并分发最终事件。
- idle()[源代码]¶
此函数在每一帧之后被调用。默认情况下:
它将时钟“推进”到下一帧。
它读取所有输入并分发事件。
它将 on_update、on_draw 和 on_flip 事件分发给窗口。
- post_dispatch_input(etype, me)[源代码]¶
当我们需要分发输入事件时,此函数由
EventLoopBase.dispatch_input()调用。该事件被分发给所有监听器,如果被捕获,则分发给捕获的控件。
- start()[源代码]¶
必须在调用
EventLoopBase.run()之前调用此方法。这将启动所有已配置的输入提供程序。在 2.1.0 版本发生变更: 该方法可被多次调用,但事件循环只会启动一次。
- stop()[源代码]¶
停止所有输入提供者,并调用通过 EventLoop.add_stop_callback() 注册的回调函数。
在 2.1.0 版本发生变更: 该方法可被多次调用,但事件循环只会停止一次。
- property touches¶
返回当前处于按下或移动状态的所有触摸点的列表。
- class kivy.base.ExceptionHandler[源代码]¶
基类:
object在
runTouchApp()中捕获异常的基础处理器。您可以按如下方式对其进行子类化并扩展::class E(ExceptionHandler): def handle_exception(self, inst): Logger.exception('Exception caught by ExceptionHandler') return ExceptionManager.PASS ExceptionManager.add_handler(E())
然后,所有异常将被设置为通过,并记录到控制台!
- handle_exception(exception)[源代码]¶
由
ExceptionManagerBase调用以处理异常。默认返回
ExceptionManager.RAISE,该值会重新抛出异常。返回ExceptionManager.PASS表示异常已被处理,应予以忽略。如果异常在多个 Kivy 异常处理层级中冒泡,并且返回了
ExceptionManager.RAISE,则可能会使用相同的异常多次调用此方法。
- kivy.base.ExceptionManager: ExceptionManagerBase = <kivy.base.ExceptionManagerBase object>¶
处理kivy异常的
ExceptionManagerBase实例。
- class kivy.base.ExceptionManagerBase[源代码]¶
基类:
objectExceptionManager 管理异常处理器。
- PASS = 1¶
异常应被忽略,因为它已由处理器处理。
- RAISE = 0¶
异常应被重新抛出。
- handle_exception(inst)[源代码]¶
当
runTouchApp()主循环中发生异常时调用。
- async kivy.base.async_runTouchApp(widget=None, embedded=False, async_lib=None)[源代码]¶
与
runTouchApp()相同,但它是一个协程,可以在现有的异步事件循环中运行。async_lib是要使用的异步库。有关详细信息及示例用法,请参阅kivy.app。在 2.0.0 版本加入.
- kivy.base.runTouchApp(widget=None, embedded=False)[源代码]¶
静态主函数,用于启动应用程序循环。你可以通过以下参数访问一些魔法功能:
参见
kivy.app获取示例用法。- 参数:
- <empty>
为了使事件分发正常工作,至少需要一个输入监听器。否则,应用程序将退出。(MTWindow 充当输入监听器)
- widget
如果你只传入一个widget,系统将创建一个MTWindow,并将你的widget作为根widget添加到该窗口中。
- embedded
不进行事件分发。这将由你来完成。
- widget + embedded
不进行事件分发。这将是你的工作,但我们会尝试获取窗口(必须由你事先创建)并将控件添加到其中。这对于将Kivy嵌入其他工具包(如Qt,参见kivy-designed)非常有用。