Python 在Kivy应用程序中基于布尔条件更改标签

Python 在Kivy应用程序中基于布尔条件更改标签,python,kivy,Python,Kivy,在我用Kivy Python开发的应用程序中,我试图输入一个简单的开始/停止按钮。单击以启动理论上的计时器,然后在活动完成后停止。为了证明概念,我只想单击开始按钮并将其更改为“停止”(并显示一个相应的弹出窗口,说明“活动已启动”),然后单击停止按钮时则相反 总体来说,我还是新手,我想通过一个布尔条件和一个名为“activity\u choice”的变量来实现这一点。问题是,这个逻辑只会运行一次,然后我无法在后续的点击中来回更改标签。可能的问题是Kivy应用程序永远不知道布尔变量实际发生了更改(并

在我用Kivy Python开发的应用程序中,我试图输入一个简单的开始/停止按钮。单击以启动理论上的计时器,然后在活动完成后停止。为了证明概念,我只想单击开始按钮并将其更改为“停止”(并显示一个相应的弹出窗口,说明“活动已启动”),然后单击停止按钮时则相反

总体来说,我还是新手,我想通过一个布尔条件和一个名为“activity\u choice”的变量来实现这一点。问题是,这个逻辑只会运行一次,然后我无法在后续的点击中来回更改标签。可能的问题是Kivy应用程序永远不知道布尔变量实际发生了更改(并且不会实时更新)。有没有比布尔变量更好的方法?或者,是否有一种方法可以潜在地刷新应用程序,使其意识到布尔值已更改

.py文件代码:

    def activity_popup(self):
    if self.activity_choice == False:
        self.activity_choice == True
        activity_label = self.root.ids['add_workout_screen'].ids['activity_label']
        activity_label.text = "Stop Activity"

        
    if self.activity_choice == True:
        self.activity_choice == False
        activity_label = self.root.ids['add_workout_screen'].ids['activity_label']
        activity_label.text = "Start Activity"
    GridLayout:             
        rows: 2
        pos_hint: {"top": .55, "right": 1.0}
        size_hint: 1, .26
        ImageButton:
            source: "icons/power.png"
            on_press: app.activity_popup()

        LabelButton:
            size_hint: .3, .2
            pos_hint: {"top": .45, "right": 1.0}
            text: "Start Activity"
            id: activity_label
            on_press: app.activity_popup()
.kv文件代码:

    def activity_popup(self):
    if self.activity_choice == False:
        self.activity_choice == True
        activity_label = self.root.ids['add_workout_screen'].ids['activity_label']
        activity_label.text = "Stop Activity"

        
    if self.activity_choice == True:
        self.activity_choice == False
        activity_label = self.root.ids['add_workout_screen'].ids['activity_label']
        activity_label.text = "Start Activity"
    GridLayout:             
        rows: 2
        pos_hint: {"top": .55, "right": 1.0}
        size_hint: 1, .26
        ImageButton:
            source: "icons/power.png"
            on_press: app.activity_popup()

        LabelButton:
            size_hint: .3, .2
            pos_hint: {"top": .45, "right": 1.0}
            text: "Start Activity"
            id: activity_label
            on_press: app.activity_popup()

您可以根据按钮文本更改标签文本,按钮文本在按下按钮时也会更改,如下例所示。您还可以选择在按下事件时打开一个弹出窗口(示例中未显示)