Ich versuche, die Position einer Schaltfläche mit dem Index einer Liste zu verknüpfen. Ich habe eine Liste mit vielen Namen und eine weitere Liste mit vielen numerischen Werten. Ich möchte eine Funktion erstellen, die die Position (oder einen anderen Parameter) ihrer Schaltfläche übernimmt und ihre Schaltfläche einem Index der Liste zuordnet.Variable Funktion als Position
Zum Beispiel: wenn ich auf die erste Schaltfläche klicke, nimmt die Funktion den ersten Namen der Liste und nimmt den ersten numerischen Wert der anderen Liste. Also habe ich den letzten Knopf gedrückt, und die Funktion nimmt den letzten Namen der Liste und den letzten numerischen Wert der anderen Liste.
Ich habe es geschafft, viele Funktionen als Werte zu erstellen, aber ich denke, dass es einen intelligenteren Weg gibt, dies zu tun.
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()
Sie müssen das Observable-Muster verwenden. Wie ich mich erinnere, hat der Kivy bereits einen Basistyp für beobachtete Sammlungen. – pylover
Ich habe keine Ahnung was das ist. Weißt du wo ich Informationen finde? – victorcd