2016-04-14 3 views
0

Я ищу способ создать ряд кнопок в киви. Я довольно новичок в киви, так что это то, что я придумал.Как создать несколько кнопок с Kivy?

Мой текущий код:

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 

Который возвращает ряд кнопок в нижней части экрана помечены 0-9. Я буду кодировать кнопки для возврата чисел 0-9, но это еще не сделано.

Я почти уверен, что есть лучший, более простой способ сделать это, но я просто не знаю, что это такое.

+0

Знаете ли вы, что такое 'for' loop? – jligeza

+0

для x в 10: i = Button (pos_hint = {'x': 0, 'center_y': .1}, size_hint = (. 1, .1), text = '0',) i. связывания (on_press = user_input) layout.add_widget (я) я + = 1 INT ошибки не итерация – Ecocrexis

+0

я настоятельно рекомендую вам делать некоторые основные питона курс перед использованием kivy. Узнайте, как использовать списки, дикты, циклы, функции, классы и т. Д. – jligeza

ответ

1

Вы определенно должны изучить основы петель первым, как jligeza упоминались, но, по сути, вам нужно сделать что-то по следующим направлениям:

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

Обратите внимание, что причина, по которой вы получаете сообщение об ошибке с вашими for x in 10 комментарий объясняется тем, что, как говорит ошибка, целое число не является итерируемым. Вместо этого, если вы используете диапазон (0,10), это то, что он выполняет итерацию через следующие list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Смежные вопросы