Python 在Kivy应用程序中基于布尔条件更改标签
在我用Kivy Python开发的应用程序中,我试图输入一个简单的开始/停止按钮。单击以启动理论上的计时器,然后在活动完成后停止。为了证明概念,我只想单击开始按钮并将其更改为“停止”(并显示一个相应的弹出窗口,说明“活动已启动”),然后单击停止按钮时则相反 总体来说,我还是新手,我想通过一个布尔条件和一个名为“activity\u choice”的变量来实现这一点。问题是,这个逻辑只会运行一次,然后我无法在后续的点击中来回更改标签。可能的问题是Kivy应用程序永远不知道布尔变量实际发生了更改(并且不会实时更新)。有没有比布尔变量更好的方法?或者,是否有一种方法可以潜在地刷新应用程序,使其意识到布尔值已更改 .py文件代码:Python 在Kivy应用程序中基于布尔条件更改标签,python,kivy,Python,Kivy,在我用Kivy Python开发的应用程序中,我试图输入一个简单的开始/停止按钮。单击以启动理论上的计时器,然后在活动完成后停止。为了证明概念,我只想单击开始按钮并将其更改为“停止”(并显示一个相应的弹出窗口,说明“活动已启动”),然后单击停止按钮时则相反 总体来说,我还是新手,我想通过一个布尔条件和一个名为“activity\u choice”的变量来实现这一点。问题是,这个逻辑只会运行一次,然后我无法在后续的点击中来回更改标签。可能的问题是Kivy应用程序永远不知道布尔变量实际发生了更改(并
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()
您可以根据按钮文本更改标签文本,按钮文本在按下按钮时也会更改,如下例所示。您还可以选择在按下事件时打开一个弹出窗口(示例中未显示)