我正在尝试找出已选择了哪个按钮,然后如果已选择了该按钮,请将其分配给我的python文件中的变量,但是我不确定如何访问该按钮的ID。
下面的按钮从蓝色[0,0,1,0]开始,然后按下时,它们变成绿色[0,1,0,1]。我下面的代码成功地确定了哪些按钮是绿色的,然后我有了打印功能来显示其正常工作。在这里,print(self.ids)是我要访问每个按钮的每个id(从a到f)并将a-f存储在变量中的地方。
class WhatButton(Screen):
back_color = ObjectProperty()
def button_pressed(self):
buttons = [self.ids.a.back_color, self.ids.b.back_color, self.ids.c.back_color,
self.ids.d.back_color, self.ids.e.back_color, self.ids.f.back_color]
counter = 0
for x in buttons:
if x == [0, 1, 0, 1]:
counter += 1
print(self.ids)
else:
pass
if counter == 0:
self.none_selected()
else:
sm.current = "thank you"
希望上面的内容很清楚,如果需要更多说明,请告诉我
答案 0 :(得分:0)
您可以创建六个变量(从“ a”到“ f”),并将它们最初都设置为“ no”。然后在您的button_pressed()
方法中将绿色的颜色更改为“是”。
我相信一种更好的方法是使用“ a”到“ f”作为键来创建值的字典。这是执行此操作的代码的修改版本:
def button_pressed(self):
counter = 0
self.selected = {}
for x in ['a', 'b', 'c', 'd', 'e', 'f']:
if self.ids[x].back_color == [0, 1, 0, 1]:
counter += 1
self.selected[x] = 'yes'
else:
self.selected[x] = 'no'
print(self.selected)
if counter == 0:
self.none_selected()
else:
sm.current = "thank you"
使用这种方法,您可以访问self.selected['a']
形式的任何值(或任何'a'到'f')。