Как обновить текст кнопки после нажатия кнопки в python? - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь создать приложение, которое со временем сможет подсчитывать карты. Одна проблема, которую я пытаюсь решить, - как обновить текст кнопки после нажатия или каким-то образом обновить его. Я новичок в python / kivy. Я нашел пару похожих вопросов, касающихся функций и тому подобного, но ни один из них не касался файлов .kv и отдельных windows. Мой код ниже.

main.py

import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

class MainWindow(Screen):
    pass

class ScoreWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

kv = Builder.load_file("mainkv.kv")


class MyMainApp(App):
    def build(self):
        return kv

if __name__ == "__main__":
    MyMainApp().run()

mainkv.kv

WindowManager:
    MainWindow:
    ScoreWindow:

<MainWindow>:
    name: "main"

    GridLayout:
        cols: 1

        Button:
            text: "Quick Score"
            on_release:
                app.root.current = "score"
                root.manager.transition.direction = "left"

<ScoreWindow>:
    name: "score"

    GridLayout:
        cols: 7
        Button:
            name: "three"
            text: "Press to Update"
            on_release:
                three.text = "Updated"

        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: "Score"
            on_release:
                app.root.current = "main"
                root.manager.transition.direction = "right"
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: ""
        Button:
            text: "Go Back"
            on_release:
                app.root.current = "main"
                root.manager.transition.direction = "right"

1 Ответ

1 голос
/ 09 мая 2020

Ваши Button s могут ссылаться на себя в kvlang с помощью ключевого слова self. Так что просто добавьте еще одну строку, в которой написано self.text = 'foo' в области on_release: вашего Button s.

...