class kivy.app.App(**kwargs)
Базовый класс kivy.event.EventDispatcher
.
Класс приложения. События:
- on_start — Запускается при запуске приложения (перед вызовом
runTouchApp()
) - on_stop — Происходит, когда приложение останавливается
- on_pause — Происходит, когда операционная система останавливает (дословно — ставит на паузу) выполнение приложения
- on_resume — Срабатывает, когда приложение возобновляется с паузы ОС. Будьте осторожны: у вас нет гарантии, что это событие будет запущено после вызова события on_pause
Примечание: добавлен в версии 1.7.0 параметр kv_file.
Методы и атрибуты:
build() — Инициализирует приложение; оно будет вызвано только один раз. Если этот метод возвращает виджет (дерево), он будет использоваться в качестве корневого виджета и добавлен в окно. Возвращает экземпляр корневого виджета, если не задан self.root
.
build_config(config) — Этот метод вызывается до инициализации приложения для создания объекта ConfigParser. Здесь вы можете поместить любой раздел / ключ / значение по умолчанию для вашей конфигурации. Если что-то установлено, конфигурация будет автоматически сохранена в файле, возвращенном get_application_config().
build_settings(settings) — Этот метод вызывается, когда пользователь (или вы) хотите показать параметры приложения. Он вызывается один раз при первом открытии панели настроек, после чего панель кэшируется. Он может быть вызван снова, если панель кэшированных настроек удаляется destroy_settings().
Вы можете использовать этот метод для добавления панелей настроек и настройки виджета настроек, например, путем изменения ширины боковой панели. Аргумент — экземпляр объекта Settings для добавления на панель
close_settings(*largs) — закрывает ранее открытую панель настроек. Вернет True, если панель будет закрыта.
config = None — Возвращает экземпляр ConfigParser для конфигурации приложения. Это можно использовать для запроса некоторых токенов конфигурации в методе build()
create_settings() — Создает панель настроек. Этот метод обычно вызывается только один раз за время жизни приложения, и результат кэшируется внутри, но он может быть вызван снова, если кэшированная панель удаляется через destroy_settings()
.
По умолчанию он построит панель настроек в соответствии с settings_cls
, вызовет build_settings()
, добавит панель Kivy, если use_kivy_settings
имеет значение True
, и свяжет с on_close
/on_config_change
.
Если вы хотите подключить свой собственный способ выполнения настроек, без панели Kivy или событий закрытия/изменения конфигурации, это метод, который вы хотите перегрузить.
display_settings(settings) — Откройте панель настроек. По умолчанию панель отображается непосредственно в верхней части окна. Вы можете определить другое поведение, переопределив этот метод, например, добавив его в ScreenManager или Popup.
Вы должны вернуть True, если отображение успешно, в противном случае False. Аргумент settings вы можете изменить для отображения.
get_application_config(defaultpath=’%(appdir)s/%(appname)s.ini’) — Возвращает имя файла конфигурации приложения. В зависимости от платформы, файл приложения будет храниться в разных местах:
- на iOS: <appdir>/Documents/.<appname>.ini
- на Android: <user_data_dir>/.<appname>.ini
- на других: <appdir>/<appname>.ini
При распространении приложения на настольных компьютерах обратите внимание, что если приложение предназначено для установки на всей системе, пользователь может не иметь доступа на запись в каталог приложения. Если вы хотите сохранить пользовательские настройки, следует перегрузить этот метод и изменить поведение по умолчанию, чтобы сохранить файл конфигурации в каталоге пользователя.
class TestApp(App): def get_application_config(self): return super(TestApp, self).get_application_config( '~/.%(appname)s.ini')
Шпаргалки:
- The tilda ‘~’ will be expanded to the user directory.
- %(appdir)s will be replaced with the application
directory
- %(appname)s will be replaced with the application
name
get_application_icon() — вернет иконку приложения
get_application_name() — вернет имя программы
static get_running_app() — вернет экземпляр текущего запущенного приложения
icon — иконка (логотип) текущего приложения. Значок может быть расположен в том же каталоге, что и ваш основной файл. Вы можете установить это следующим образом:
class MyApp(App): def build(self): self.icon = 'myicon.png'
Рекомендуется не меньше, чем 256х256 либо 1024х1024
kv_directory — Путь к каталогу, в котором хранится приложение kv, по умолчанию равен None. Если задан каталог kv_directory, он будет использоваться для получения исходного файла kv. По умолчанию предполагается, что файл находится в том же каталоге, что и текущий файл определения приложения (см метод load_kv).
kv_file — Имя файла Kv для загрузки, по умолчанию нет. Если kv_file установлен, он будет загружен при запуске приложения. Загрузка файла kv «по умолчанию» будет предотвращена.
load_config() — (внутренний) эта функция возвращает ConfigParser с конфигурацией приложения. Она делает 3 вещи:
- Создание экземпляра ConfigParser
- Загрузка конфигурации по умолчанию путем вызова
build_config()
, затем - Если он существует, он загружает файл конфигурации приложения, в противном случае он создает его.
Возвращает: экземпляр ConfigParser
load_kv(filename=None) — Этот метод вызывается при первом запуске приложения, если дерево виджетов не было создано ранее для этого приложения. Затем этот метод ищет соответствующий файл kv в том же каталоге, что и файл, содержащий класс приложения.
Например, скажем, у вас есть файл с именем main.py что содержит:
class ShowcaseApp(App): pass
Этот метод будет искать файл с именем showcase.kv в каталоге, который содержит main.py. имя файла kv должно быть строчным именем класса, без постфикса » App » В конце, если он существует.
Вы можете определить правила и корневой виджет в своем файле kv:
<ClassName>: # this is a rule ... ClassName: # this is a root widget ...
Должен быть только один корневой виджет. Для получения дополнительной информации читайте документацию по языку kivy. Если ваш файл kv содержит корневой виджет, он будет использоваться как self.корень, корневой виджет для приложения.
name — вернет имя приложения, основанное на имени класса приложения.
on_config_change(config, section, key, value) — выполняется, когда маркер конфигурации был изменен на странице настроек.
open_settings(*largs)— открывает панель настроек приложения. Она будет создан в самый первый раз или воссоздана, если ранее кэшированная панель была удалена destroy_settings()
. Панель настроек будет отображаться с помощью метода display_settings (), который по умолчанию добавляет панель настроек в окно, прикрепленное к вашему приложению. Вы должны переопределить этот метод, если вы хотите отобразить панель настроек по-другому. True вернет, если настройки будут открыты.
root = None — Корневой виджет, возвращаемый методом build() или методом load_kv (), если файл kv содержит корневой виджет.
root_window — Возвращает корневой экземпляр окна, используемый run()
.
run() — запускает приложение в единственном экземпляре (синглтон)
settings_cls — Класс, используемый для построения панели настроек и экземпляра, передаваемого в build_config(). Вы должны использовать либо настройки, либо один из предоставленных подклассов с различными макетами (настройки с боковой панелью, SettingsWithSpinner, SettingsWithTabbedPanel, SettingsWithNoMenu). Вы также можете создать свой собственный подкласс настроек. Дополнительную информацию см. В документации по настройкам.
settings_cls является ObjectProperty и по умолчанию настройки с Spinner, который отображает панели настроек с spinner для переключения между ними. Если вы зададите строку, фабрика будет использоваться для разрешения класса.
stop(*largs) — останавливает приложение. Если вы используете этот метод, все приложение остановится, выполнив вызов stopTouchApp()
.
title — Заголовок приложения, с которым можно работать так:
class MyApp(App): def build(self): self.title = 'Hello world'
use_kivy_settings
= True — Если True, то настройки приложения также будут включать настройки Kivy.
Если вы не хотите, чтобы пользователь изменял какие-либо настройки kivy из вашего пользовательского интерфейса
настроек, измените это на False.
user_data_dir — Возвращает путь к каталогу в файловой системе пользователей, который приложение может использовать для хранения дополнительных данных.
Различные платформы имеют различные соглашения в отношении того, где пользователь может хранить данные, такие как предпочтения, сохраненные игры и настройки. Эта функция реализует эти соглашения. Каталог <имя_приложения > создается при вызове свойства, если оно еще не существует.
В iOS возвращается ~/Documents / <app_name> (который находится внутри песочницы приложения).
В Windows возвращается %APPDATA% / <имя_приложения>.
В OS X возвращается ~/Library/Application Support / <app_name>.
В Linux возвращается $XDG_CONFIG_HOME/<app_name>.
На Android, Контекст.Возвращается GetFilesDir.
от