Ключевое слово app
Ключевое слово app позволяет обратиться к элементу, который относится к приложению. Это эквивалентно вызову функции, которая находится в коде приложения, написанного на Python. Рассмотрим это на простейшем примере.
Демонстрация использования ключевого слова app
from kivy. app import App
from kivy.lang import Builder
KV = '''
BoxLayout:
orientation: 'vertical'
Button:
text: "Кнопка1"
on_press: app.press_button (self.text)
Button:
text: "Кнопка2"
on_press: app.press_button (self.text)
Label:
id:lb1
text: app.name
'''
class MainApp (App):
def build (self):
return Builder.load_string(KV)
def press_button (self, instance):
self.root.ids.lb1.text="Вы нажали на кнопку: " + instance
if __name__ == '__main__':
MainApp().run()
В этом модуле создан корневой виджет BoxLayout. Затем в корневой виджет вложено три элемента – две кнопки (Button) и метка (Label). Событие нажатия кнопки (on_press), будет обработано функцией press_button. Эта функция находится в приложении Main, поэтому
перед именем функции стоит префикс app – app.press_button (self. text). То есть в данной строке указано, что мы через префикс app
обращаемся к приложению Main, в частности к функции press_button, и передаем в эту функцию свойство text данной кнопки (self.text).
Метка Label имеет свойство text. Этому свойству через префикс app по умолчанию присваивается имя приложения (Main). Получается, что с использованием префикса app кнопка обратилась к функции приложения и передала ему свое свойство, а метка Label получила значение своего свойства из приложения Main.
В методе press_button, который вызывается при нажатии на одну из кнопок, меняется текст в метке, для обращения к которой приходится использовать конструкцию self.root.ids.lb1, где в данном случае
