Table Of Contents
Основа Kivy¶
Этот модуль содержит основные функции Kivy и не предназначен для конечных пользователей. Вы можете посмотреть его, но имейте в виду, что вызов любых из этих методов напрямую может привести к непредсказуемому поведению, так как вызовы напрямую обращаются к циклу событий приложения.
- kivy.base.EventLoop = <kivy.base.EventLoopBase object>¶
Экземпляр EventLoop
- class kivy.base.EventLoopBase[исходный код]¶
Базовые классы:
kivy.event.EventDispatcher
Основной цикл событий. Этот цикл обрабатывает обновление ввода и распределение событий.
- add_event_listener(listener)[исходный код]¶
Добавить новый слушатель событий для получения событий касания.
- add_input_provider(provider, auto_remove=False)[исходный код]¶
Добавить нового поставщика ввода для прослушивания событий касания.
- add_postproc_module(mod)[исходный код]¶
Добавить постобработчик модуля ввода (DoubleTap, TripleTap, DeJitter RetainTouch являются значениями по умолчанию).
- async async_idle()[исходный код]¶
Идентичен
idle()
, но используется, когда запущен асинхронный цикл событий.
- close()[исходный код]¶
Выход из основного цикла и остановка всех настроенных поставщиков ввода.
- dispatch_input()[исходный код]¶
Вызывается
EventLoopBase.idle()
для чтения событий от поставщиков ввода, передачи событий постобработке и распределения окончательных событий.
- ensure_window()[исходный код]¶
Убедитесь, что у нас есть окно.
- exit()[исходный код]¶
Закрыть основной цикл и закрыть окно.
- idle()[source]¶
она "тикает" часами к следующему кадру.
она читает все вводы и отправляет события.
она отправляет события on_update, on_draw и on_flip в окно.
- on_pause()[исходный код]¶
Обработчик событий для on_pause, которое будет вызвано, когда цикл событий приостановлен.
- on_start()[исходный код]¶
Обработчик событий для on_start, который будет вызван сразу после запуска всех поставщиков ввода.
- on_stop()[исходный код]¶
Обработчик событий для событий on_stop, которые будут вызваны сразу после остановки всех поставщиков ввода.
- post_dispatch_input(etype, me)[исходный код]¶
Эта функция вызывается
EventLoopBase.dispatch_input()
когда мы хотим отправить событие ввода. Событие отправляется всем слушателям и, если захвачено, оно отправляется захваченным виджетам.- remove_android_splash(*args)[исходный код]¶
Удалить предварительную заставку Android в загрузчике SDL2.
- remove_event_listener(listener)[исходный код]¶
Удалить слушателя событий из списка.
- remove_input_provider(provider)[исходный код]¶
Удалить поставщика ввода.
Изменено в версии 2.1.0: Поставщик также будет удален, если он есть в списке автоудаления.
- remove_postproc_module(mod)[исходный код]¶
Удалить модуль постобработки.
- run()[исходный код]¶
Основной цикл
- set_window(window)[исходный код]¶
Установить окно, используемое для цикла событий.
- start()[исходный код]¶
Должен быть вызван перед
EventLoopBase.run()
. Этот метод запускает все настроенные поставщики ввода.Изменено в версии 2.1.0: Метод можно вызывать несколько раз, но цикл событий запустится только один раз.
- stop()[исходный код]¶
Останавливает все поставщики ввода и вызывает зарегистрированные обратные вызовы, используя EventLoop.add_stop_callback().
Изменено в версии 2.1.0: Метод можно вызывать несколько раз, но цикл событий остановится только один раз.
- property touches¶
Возвращает список всех прикосновений, находящихся в состоянии нажатия или перемещения.
Эта функция вызывается после каждого кадра. По умолчанию:
- class kivy.base.ExceptionHandler[source]¶
Базовый класс:
builtins.object
Базовый обработчик, который перехватывает исключения в
runTouchApp()
. Вы можете создать подкласс и расширить его следующим образом:class E(ExceptionHandler): def handle_exception(self, inst): Logger.exception('Исключение перехвачено ExceptionHandler') return ExceptionManager.PASS ExceptionManager.add_handler(E())
Затем все исключения будут установлены в значение PASS и записаны в консоль!
- handle_exception(exception)[source]¶
Вызывается
ExceptionManagerBase
для обработки исключения.По умолчанию возвращает
ExceptionManager.RAISE
, что повторно возбуждает исключение. ВозвращайтеExceptionManager.PASS
, чтобы указать, что исключение было обработано и его следует игнорировать.Это может вызываться несколько раз для одного и того же исключения, если
ExceptionManager.RAISE
исключение продолжает всплывать через несколько уровней обработки исключений Kivy.
- kivy.base.ExceptionManager: kivy.base.ExceptionManagerBase = <kivy.base.ExceptionManagerBase object>¶
Экземпляр
ExceptionManagerBase
, управляющий исключениями Kivy.
- class kivy.base.ExceptionManagerBase[source]¶
Базовый класс:
builtins.object
ExceptionManager управляет обработчиками исключений.
- PASS = 1¶
Исключение должно быть проигнорировано, так как его обработал обработчик.
- RAISE = 0¶
Исключение должно быть повторно вызвано.
- handle_exception(inst)[source]¶
Вызывается, когда возникает исключение в главном цикле
runTouchApp()
.
- async kivy.base.async_runTouchApp(widget=None, embedded=False, async_lib=None)[source]¶
Идентично функции
runTouchApp()
, но это корутина, которую можно запустить в существующем асинхронном цикле событий.async_lib
- это библиотека для асинхронности, которую следует использовать. См.kivy.app
для подробностей и примеров использования.Добавлено в версии 2.0.0.
- kivy.base.runTouchApp(widget=None, embedded=False)[source]¶
Статическая главная функция, которая запускает цикл приложения. Вы можете получить доступ к некоторой магии с помощью следующих аргументов:
См.
kivy.app
для примеров использования.- Parameters
- <empty>
Чтобы обработка событий работала, вам нужен хотя бы один слушатель ввода. В противном случае приложение завершится. (MTWindow действует как слушатель ввода)
- widget
Если вы передаете только виджет, будет создан MTWindow и ваш виджет будет добавлен в окно как корневой виджет.
- embedded
Не выполняется никакой обработки событий. Это будет вашей задачей.
- widget + embedded
Не выполняется никакой обработки событий. Это будет вашей задачей, но мы попытаемся получить окно (которое должно быть создано заранее) и добавить виджет в него. Очень полезно для встраивания Kivy в другой инструментарий (например, Qt, проверьте kivy-designed).
- kivy.base.stopTouchApp()[source]¶
Остановить текущее приложение, покинув главный цикл.
См.
kivy.app
для примеров использования.