Нужна помощь в удалении виджетов kivy

У меня есть два файла main.py и demo.kv. При выполнении функции add_item у меня происходит добавление 4ех виджетов (MDLabel - 3шт и MDRaisedButton - 1шт) и они образуют строку. И я хочу сделать так, чтобы при нажатии на кнопку MDRaisedButton(text='—') происходило удаление именно этой строки и следовательно оставались остальные добавленные строки. Например, если я добавлю три строки и нажму вторую по счету кнопку, то должны остаться на экране 1 и 3 строки. Единственное, что я смог реализовать это полное удаление всех строк на экране. Если кто знает решение - то прошу помочь. Заранее спасибо)

main.py

from kivy.lang import Builder
from kivy.core.window import Window

from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.uix.button import MDRaisedButton

Window.size = (340, 600)

# итоговая цена клиента
finalPrice = []
# итоговый заказ клиента
finalItems = []
# кол-во товаров
finalCounter = []

class MainApp(MDApp):

    def build(self):
        self.theme_cls.primary_palette = 'Blue'
        return Builder.load_file('demo.kv')

    #функция добавления товаров
    def add_item(self, name, price, counter):


        mdRB = MDRaisedButton(text='—')
        mdRB.bind(on_press=self.delete_mdRB)

        self.root.ids.basketItems.add_widget(
            MDLabel(text=name, adaptive_height=True, adaptive_width=True)
        )
        self.root.ids.basketItems.add_widget(
            MDLabel(text=price, adaptive_height=True, adaptive_width=True, width=60, size_hint_x=None)
        )
        self.root.ids.basketItems.add_widget(
            MDLabel(text=counter, adaptive_height=True, adaptive_width=True, width=120, size_hint_x=None)
        )
        self.root.ids.basketItems.add_widget(
            mdRB
        )

    def delete_mdRB(self):
        for child in [child for child in self.root.ids.basketItems.children]:
            self.root.ids.basketItems.remove_widget(child)

            # очистка итоговой цены клиента
        finalPrice.clear()
        print(finalPrice)
        # очистка корзины клиента
        finalItems.clear()
        print(finalItems)
        # очистка кол-во товара
        finalCounter.clear()
        print(finalCounter)

if __name__ == '__main__':
    MainApp().run()

demo.kv

#:import Factory kivy.factory.Factory

#Всплывающее окно Основ
<Bases@Popup>
    auto_dismiss: True
    title: 'Товары'

    background_normal: ""
    background_color: (26/255, 149/255, 184/255, .9)

    ScrollView:
        size: self.size

        GridLayout:

            size_hint_y: None
            height: self.minimum_height
            width: self.minimum_width

            cols: 3

            size: root.width * 0.5, root.height * 0.5
            row_default_height: 35
            row_force_default: True
            center: root.width / 1, root.height / 1

            Label:
                text: ''
            Label:
                text: ''
            Button:
                text: 'Закрыть'
                font_size: 12
                on_release: root.dismiss()

            Label:
                text: 'Наименование'
                font_size: 12
                text_size: self.size
                halign: 'left'
                valign: 'middle'

            Label:
                text: 'Кол-во'
                font_size: 12
                text_size: self.size
                halign: 'right'
                valign: 'middle'
            Label:
                text: 'В корзину'
                font_size: 12

            Label:
                text: f'Товар 1 290р'
                font_size: 12
                text_size: self.size
                halign: 'left'
                valign: 'middle'
            AnchorLayout:
                anchor_x: 'right'
                TextInput:
                    id: name_input
                    multiline: 'False'
                    width: 60
                    size_hint_x: None
            Button:
                text: '+'
                on_press:
                    app.add_item('Товар 1', '290', name_input.text)



            Label:
                text: f'Товар 2 250р'
                font_size: 12
                text_size: self.size
                halign: 'left'
                valign: 'middle'

            AnchorLayout:
                anchor_x: 'right'
                TextInput:
                    id: name_input2
                    multiline: 'False'
                    width: 60
                    size_hint_x: None
            Button:
                text: '+'
                on_press:
                    app.add_item('Товар 2', '250', name_input2.text)


BoxLayout:
    orientation: 'vertical'

    MDToolbar:
        title: 'Магазин'

    MDBottomNavigation:

        #Нижння часть эакрана "Главная"
        MDBottomNavigationItem:
            name: 'Items'
            text: 'Главная'
            icon: 'home'

            MDBoxLayout:
                orientation: 'vertical'
                pos_hint: {'center_y':0.5}
                adaptive_height: True
                spacing: 2

                MDRaisedButton:
                    text: 'Товар'
                    pos_hint: {"center_x":.5}
                    width: dp(250) + (self.ids.lbl_txt.texture_size[0] - self.ids.lbl_txt.texture_size[0])
                    on_release: Factory.Bases().open()

        #Нижняя часть главного экрана "Корзина"
        MDBottomNavigationItem:
            name: 'Basket'
            text: 'Корзина'
            icon: 'basket'

            ScrollView:
                size: self.size

                GridLayout:
                    size_hint_y: None
                    height: self.minimum_height
                    width: self.minimum_width

                    size: root.width * 0.5, root.height * 0.5
                    row_default_height: 35
                    row_force_default: True
                    center: root.width / 1, root.height / 1

                    id: basketItems
                    cols: 4
                    spacing: 4




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