Версия 2.1.0

Quick search

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

Исключение должно быть повторно вызвано.

add_handler(cls)[source]

Добавить новый обработчик исключений в стек.

handle_exception(inst)[source]

Вызывается, когда возникает исключение в главном цикле runTouchApp().

remove_handler(cls)[source]

Удалить обработчик исключений из стека.

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 для примеров использования.