Programado
Docs» kivy:app

Ключевое слово 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, где в данном случае

  • self - ссылка на MainApp
  • root - корневой виджет BoxLayout
  • ids - идентификаторы в пределах корневого виджета
  • lb1 - идентификатор метки

После запуска данного модуля получим следующий результат:

Previous Next

Programado

Table of Contents

Содержание

  • Kivy
  • Процессор_x86-64
  • Вход