2016-04-14 9 views
0

Ich suche nach einer Möglichkeit, eine Reihe von Schaltflächen in Kivy zu erstellen. Ich bin ziemlich neu bei Kivy, also ist das, was mir eingefallen ist.Wie kann ich mehrere Tasten mit Kivy erstellen?

Mein aktueller Code ist:

class StackGameApp(App): 

    def build(self): 

    layout = FloatLayout() 

    b0 = Button(pos_hint={'x': 0, 'center_y': .1}, size_hint=(.1, .1),text= '0') 
    b1 = Button(pos_hint={'x': .1, 'center_y': .1}, size_hint=(.1, .1),text= '1') 
    b2 = Button(pos_hint={'x': .2, 'center_y': .1}, size_hint=(.1, .1),text= '2') 
    b3 = Button(pos_hint={'x': .3, 'center_y': .1}, size_hint=(.1, .1),text= '3') 
    b4 = Button(pos_hint={'x': .4, 'center_y': .1}, size_hint=(.1, .1),text= '4') 
    b5 = Button(pos_hint={'x': .5, 'center_y': .1}, size_hint=(.1, .1),text= '5') 
    b6 = Button(pos_hint={'x': .6, 'center_y': .1}, size_hint=(.1, .1),text= '6') 
    b7 = Button(pos_hint={'x': .7, 'center_y': .1}, size_hint=(.1, .1),text= '7') 
    b8 = Button(pos_hint={'x': .8, 'center_y': .1}, size_hint=(.1, .1),text= '8') 
    b9 = Button(pos_hint={'x': .9, 'center_y': .1}, size_hint=(.1, .1),text= '9') 
    layout.add_widget(b0) 
    layout.add_widget(b1) 
    layout.add_widget(b2) 
    layout.add_widget(b3) 
    layout.add_widget(b4) 
    layout.add_widget(b5) 
    layout.add_widget(b6) 
    layout.add_widget(b7) 
    layout.add_widget(b8) 
    layout.add_widget(b9) 
    return layout 

, die eine Reihe von Schaltflächen am unteren Rand des Bildschirms 0-9 beschriftet zurückgibt. Ich werde die Knöpfe kodieren, um die Zahlen 0-9 zurückzugeben, aber das ist noch nicht getan worden.

Ich bin mir fast sicher, dass es einen besseren, einfacheren Weg gibt, dies zu tun, aber ich weiß einfach nicht, was es ist.

+0

Wissen Sie, was 'for' loop ist? – jligeza

+0

für x in 10: i = Schaltfläche (pos_hint = {'x': 0, 'center_y': .1}, size_hint = (. 1, .1), text = '0',) i. bind (on_press = USER_INPUT) layout.add_widget (i) i + = 1 int Fehler ist nicht iterable – Ecocrexis

+0

ich Ihnen dringend empfehlen, bevor Sie Kivy einige grundlegende python natürlich tun. Erfahren Sie, wie Sie Listen, Dicts, Loops, Funktionen, Klassen usw. verwenden. – jligeza

Antwort

1

Sie sollten auf jeden Fall die Grundlagen der Schleifen zuerst lernen wie jligeza erwähnt, aber im Wesentlichen, müssen Sie etwas entlang der folgenden Zeilen tun:

for i in range(0,10): 
    layout.add_widget(Button(text=str(i)) 

Beachten Sie, dass der Grund, dass Sie einen Fehler mit Ihrem for x in 10 waren immer Kommentar ist, weil genau wie der Fehler sagt, eine ganze Zahl nicht iterierbar ist. Wenn Sie stattdessen den Bereich (0,10) verwenden, führt dies folgende Schritte durch: Liste: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Verwandte Themen