Как передать текст из переменной в виджет label в файле .kv?

Как передать данные из переменной X в текст Label (id: Y) класса Z, находящегося в файле KV (.kv) во время разработки приложения на Python Kivy?
  • 11 марта 2024 г. 16:29
Ответы на вопрос 2
Для передачи текста из переменной в виджет label в файле .kv, необходимо создать связь между переменной и текстом виджета в Python коде.

Вот пример:

main.py:

```python
from kivy.app import App
from kivy.uix.label import Label

class TestApp(App):
    def build(self):
        my_label = Label(text="Hello World")
        return my_label

if __name__ == '__main__':
    TestApp().run()
```

В этом примере переменная `my_label` содержит текст "Hello World", который передается в качестве текста виджета Label.

Если нужно передать данные из переменной X в Label (id: Y) класса Z, то можно сделать следующим образом:

main.py:

```python
from kivy.app import App
from kivy.uix.label import Label
from kivy.lang import Builder

class TestApp(App):
    def build(self):
        self.root = Builder.load_string('''
BoxLayout:
    Label:
        id: my_label
        text: root.my_variable
''')
        self.root.my_variable = "Hello World"
        return self.root

if __name__ == '__main__':
    TestApp().run()
```

test.kv:

```kv
BoxLayout:
    Label:
        id: my_label
        text: ''
```

В этом примере переменная `my_variable` передается в текст виджета Label с id `my_label`.
Вот здесь изучал Kivy. Не претендую на 100% корректность кода, но работает). Weather
Похожие вопросы