我要替换我拥有的7个功能
OLD
def press_saturday(self, *args):
if self.set_saturday == '0':
self.set_saturday = '1'
else:
self.set_saturday = '0'
具有一个单一功能,可以根据所按下的按钮来更新正确的变量。
NEW
def alarm_wkdy(self, value, day):
if value == '0':
value = '1'
else:
value = '0'
猕猴桃按钮
OLD
Button:
id: 'saturday'
text: "S"
font_size: 20
size_hint: .1, .12
pos_hint: {'x': .65, 'y': 0}
on_press: root.manager.press_saturday(*args)
background_color: root.manager.set_saturday, 0, 0, root.manager.set_saturday
NEW
Button:
id: 'saturday'
text: "S"
font_size: 20
size_hint: .1, .12
pos_hint: {'x': .75, 'y': 0}
value: root.manager.set_saturday
day: 'set_saturday'
on_press: root.manager.alarm_wkdy(self.value, self.day)
background_color: root.manager.set_saturday, 0, 0, root.manager.set_saturday
目标是在按下相应按钮时更新self.set_ 任何内容。 请帮忙。谢谢。
答案 0 :(得分:0)
我建议从函数内部删除全局变量,停止以字符串形式读取'1'和'0'并切换为布尔值否定,而是返回所需的值。看来您想返回开关值1/0以及星期几,所以我将它们作为一个元组返回,如下所示:
class myclass:
def __init__(self):
pass
def alarm_wkdy(self, value, day):
return (not value, day)
c = myclass()
print(c.alarm_wkdy(True,'Wednesday'))
(False, 'Wednesday')
答案 1 :(得分:0)
我决定不再是笨蛋,而不是调用函数来完成工作,我只是将逻辑放在按钮本身中。
Button:
id: 'saturday'
text: "S"
font_size: 20
size_hint: .1, .12
pos_hint: {'x': .75, 'y': 0}
on_press: root.manager.set_saturday = str((int(root.manager.set_saturday) -1) * -1)
background_color: root.manager.set_saturday, 0, 0, root.manager.set_saturday