@HyperChan

Как поменять текст в Label при нажатии кнопки?

Как можно в label при нажатии кнопки сменить текст?

import kivy

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout


class TestApp(App):

    def build(self):
        bl = BoxLayout
        bl.add_widget(Button(text="Hello"))
        bl.add_widget(Label(text="Hello World"))


if __name__ == '__main__':
    TestApp().run()
  • Вопрос задан
  • 1787 просмотров
Решения вопроса 1
xXLareMoonXx
@xXLareMoonXx
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout


class TestApp(App):

    def change_text(self, instance):
        self.label.text = "Text Was Changed"

    def build(self):
        bl = BoxLayout()
        self.label = Label(text="Hello World")
        bl.add_widget(Button(text="Hello", on_press=self.change_text))
        bl.add_widget(self.label)

        return bl

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


1. В функции обязательно надо добавить аргумент instance.
2. Чтобы можно было изменить текст при нажатии кнопки надо не сразу через Add_Widget, а сначала добавить в переменную, перед названием переменной надо ставить .self чтобы изменить текст
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы