我试图将按钮的位置与列表的索引相关联。我有一个列表包含许多名称,另一个列表包含许多数值。我想创建一个函数来获取其按钮的位置(或任何其他参数),并将其按钮位置与列表的索引相关联。
例如:当我单击第一个按钮时,该函数将获取列表的第一个名称,并获取另一个列表的第一个数字值。所以我点击了最后一个按钮,该函数获取列表的姓氏,最后一个数值取另一个列表。
我创建了许多函数作为值,但我认为有更聪明的方法来做到这一点。
的.py
n = ["a", "b", "c", "d"]
v = [10, 20, 30, 40]
x = 0
y = []
i = 0
class PrimeiroScreen(Screen):
def __init__(self, **kwargs):
self.name = 'um'
super(Screen,self).__init__(**kwargs)
def fc1(self, *args):#I don't know how to make i variable as button position
global x
x = x + v[i]
y.append(n[i])
print (x)
print (y)
.kv
<PrimeiroScreen>:
StackLayout:
orientation: 'tb-lr'
GridLayout:
cols: 2
spacing: 10, 10
#padding: 0, 0
size_hint: (1,.8)
Button:
text: "[b]Btn1[/b]"
markup: True
on_press: root.fc1()
Button:
text: "[b]Btn2[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1()
Button:
text: "[b]Btn3[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1()
Button:
text: "[b]Btn4[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1()
答案 0 :(得分:1)
在你的情况下,我只是将按钮位置发送到fc1函数
....
GridLayout:
cols: 2
spacing: 10, 10
#padding: 0, 0
size_hint: (1,.8)
Button:
text: "[b]Btn1[/b]"
markup: True
on_press: root.fc1(1) #woohoo!!!
Button:
text: "[b]Btn2[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1(2)
Button:
text: "[b]Btn3[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1(3)
Button:
text: "[b]Btn4[/b]"
font_size: '20dp'
markup: True
on_press: root.fc1(4)
现在你有:
def fc1(self, i):
global x
x = x + v[i]
y.append(n[i])
print (x)
print (y)