Создание новой кнопки при нажатии кнопки. (python, kivyMD)

Всем привет. Делаю приложение на kivyMD. Хочу сделать так, чтобы по нажатию на плюсик, а затем при нажатии кнопки "Done" на экране появлялась кнопка. Мой вариант не работает, но и не выдает ошибку. Подскажите, пожалуйста, как исправить так, чтобы по нажатию создавались новые кнопки.

from kivy.lang import Builder
from kivy.core.window import Window
from kivymd.app import MDApp
from kivy.uix.boxlayout import BoxLayout

from kivy.uix.button import Button
from kivymd.uix.label import MDLabel
from kivy.uix.gridlayout import GridLayout

from kivymd.uix.button import MDFlatButton
from kivymd.uix.dialog import MDDialog
from kivymd.uix.textfield import MDTextField

Window.size = (240, 426)

KV = '''
<Content>
    orientation: "vertical"
    spacing: "12dp"
    size_hint_y: None
    height: "120dp"

    MDCheckbox:
        hint_text: "Online"
        size_hint: (None, None)
        active: True
        pos_hint: {'center_x': .5, 'center_y': .4}

    MDTextField:
        hint_text: "Group name"


Screen:
    MDFloatingActionButton:
        pos_hint: {'right': 0.95, 'y': 0.05}
        icon: "icon.png"
        theme_text_color: "Custom"
        text_color: app.theme_cls.primary_color
        on_release:
            app.show_alert_dialog()

    NavigationLayout:
        ScreenManager:
            Screen:
                BoxLayout:
                    orientation: 'vertical'
                    MDToolbar:
                        title: "Navigation Drawer"
                        elevation: 10
                        left_action_items: [['menu', lambda x: nav_drawer.toggle_nav_drawer()]]
                    Widget:
        MDNavigationDrawer:
            id: nav_drawer
            ContentNavigationDrawer:

'''

class ContentNavigationDrawer(BoxLayout):
    pass

class Content(BoxLayout):
    pass

class Container(MDApp, Button):

    dialog = None

    def new_window(self, *args):
        #метод по созданию новой группы
        self.grid.add_widget(
            Button(text="Новая группа", size_hint_y=None, height=100)
        )

    def build(self):
        self.grid = GridLayout(cols=1, size_hint_y=None)
        return Builder.load_string(KV)

    def show_alert_dialog(self):
        if not self.dialog:
            self.dialog = MDDialog(
                title="Create new group",
                type="custom",
                content_cls=Content(),
                buttons=[
                    MDFlatButton(
                        text="Done", text_color=self.theme_cls.primary_color,
                        on_release=self.new_window
                    )
                ]
            )
        self.dialog.open()

Container().run()

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

Автор решения: ProBuro

Какую ошибку получаешь? Попробуй кнопки диалога определить в kv файле. Очищай то куда ты там добавляешь и добавляй по нажатию кнопки: on_press:app.new_window() on_release: app.show_alert_dialog()

Закрытие диалогового окна

def callback(self, *args):
    self.dialog.dismiss()
→ Ссылка
Автор решения: ProBuro

Для начала сделай функцию закрытия окна. Потом добавляй виджет в то место, куда хочешь. Если есть необходимость очистить место, то очищай .clear_widgets() а потом добавляй. Можешь вставить лойаут и добавлять в него.

→ Ссылка