Все виджеты на экране при нажатии кнопок сдвигаются вправо и влево
class NewTeamsScreen(Screen):
def __init__(self, **kwargs):
super(NewTeamsScreen, self).__init__(**kwargs)
self.x = 2
self.check = 0
self.app = kwargs.get('app')
self.boxlayout = BoxLayout(orientation='vertical', size_hint = (1, 1))
self.label = Label(text='Создайте команды', size_hint=[1, .10], halign='center', valign='middle')
self.label.bind(size=self.label.setter('text_size'))
self.boxlayout.add_widget(self.label)
self.bl = BoxLayout(orientation='vertical', size_hint=[1, .75])
self.l1 = BoxLayout(size_hint=[1, .13])
self.l1.add_widget(Label(text='Команда 1', halign='center', valign='middle'))
self.bl.add_widget(self.l1)
self.l2 = BoxLayout(size_hint=[1, .13])
self.l2.add_widget(Label(text='Команда 2', halign='center', valign='middle'))
self.bl.add_widget(self.l2)
self.l3 = BoxLayout(size_hint=[1, .13])
self.l3.add_widget(Label(text='', halign='center', valign='middle'))
self.bl.add_widget(self.l3)
self.l4 = BoxLayout(size_hint=[1, .13])
self.l4.add_widget(Label(text='', halign='center', valign='middle'))
self.bl.add_widget(self.l4)
self.l5 = BoxLayout(size_hint=[1, .13])
self.l5.add_widget(Label(text='', halign='center', valign='middle'))
self.bl.add_widget(self.l5)
self.l6 = BoxLayout(size_hint=[1, .13])
self.l6.add_widget(Label(text='', halign='center', valign='middle'))
self.bl.add_widget(self.l6)
self.can_add = 1
self.can_remove = 1
self.tap = Button(size_hint=[1, .07], text='+', on_release=self.add_team)
self.pat = Button(size_hint=[1, .07], text='-', on_release= self.remove_team)
self.bl.add_widget(self.tap)
self.bl.add_widget(self.pat)
self.ret = Button(size_hint=[1, .07], text='Назад', on_release=self.go_back)
self.bl.add_widget(self.ret)
self.to = Button(size_hint=[1, .07], text='Далее', on_release=self.go_next)
self.bl.add_widget(self.to)
self.boxlayout.add_widget(self.bl)
self.add_widget(self.boxlayout)
def on_enter(self, *args):
self.x = self.app.cnt_teams
def which_widget(self):
print(self.x)
if (self.x == 2):
return self.l2
elif (self.x == 3):
return self.l3
elif (self.x == 4):
return self.l4
elif (self.x == 5):
return self.l5
else:
return self.l6
def update_label_text(self, label):
label.text = 'Команда '+ str(self.x)
def to_empty_label(self, label):
label.text = ''
def add_team(self, instance):
print(self.x)
if (self.x < 6):
self.x += 1
# Обновляем текст Label
self.which_widget().children[0].text = 'Команда ' + str(self.x)
def remove_team(self, instance):
print(self.x)
if (self.x > 2):
self.which_widget().children[0].text = ''
for i in range(self.x, 7):
self.to_empty_label(self.which_widget().children[0])
self.x -= 1
def go_back(self, instance):
while (self.x > 2):
self.which_widget().children[0].text = ''
self.x -= 1
self.manager.current = 'ph_themes'
self.app.screen_now = 'ph_themes'
Почему при нажатии кнопок + и - все виджеты сдвигаются вправо и влево соответственно? В коде меняются только тексты лейблов, виджеты не удаляются и не добавляются. Как это пофиксить?