Все виджеты на экране при нажатии кнопок сдвигаются вправо и влево

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'

Почему при нажатии кнопок + и - все виджеты сдвигаются вправо и влево соответственно? В коде меняются только тексты лейблов, виджеты не удаляются и не добавляются. Как это пофиксить?


Ответы (0 шт):