Выпадающие меню в kivy с файлом kv

здравствуйте, подскажите пожалуйста как используя библиотеку kivy и файл kv сделать выпадающие меню?

Есть пример в сети, возможно поможет:
Make a simple menu bar in Kivy (Python)
И вот:
оф. доки

в первой ссылке показывается как сделать выпадающий список только сверху, а во второй ссылке можно сделать то что мне надо, но после этого нельзя добавить другие виджеты, а во втором варианте с файлом kv (официальная документация) появляется только одна кнопка без выпадающего списка

В runTouchApp можно передать контейнер с виджетами вместо одной кнопки.
Как тут в примере внизу

box = BoxLayout()
box.add_widget(lbl)
box.add_widget(btn)
runTouchApp(box)

или без runTouchApp в этом оф. примере

class MyPaintApp(App):

    def build(self):
        parent = Widget()
        self.painter = MyPaintWidget()
        clearbtn = Button(text='Clear')
        clearbtn.bind(on_release=self.clear_canvas)
        parent.add_widget(self.painter)
        parent.add_widget(clearbtn)
        return parent


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

По идее оба примера делают примерно одно и то же. Список вроде при клике на кнопку должен появляться.

а как при этом коде:

from kivy.app import App
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button


class CustomDropDown(DropDown):
    pass





class app(App):
    def build(self):

        dropdown = CustomDropDown()
        mainbutton = Button(text='Hello', size_hint=(None, None))
        mainbutton.bind(on_release=dropdown.open)
        dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))

        return mainbutton

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

и с таким kv файлом:

<CustomDropDown>:
    Button:
        text: 'perimetr'
        size_hint_y:  None
        height:  44
        on_release:  root.select('perimetr')

    Button:
        text: 'ploshad'
        size_hint_y:  None
        height:  44
        on_release:  root.select('ploshad')

добавить расположение для mainbutton?

Какое расположение?

Видимо задать какие-то свойства из Button/Label/Widget.

Например, pos:

mainbutton.pos = (100, 200)

И это может поможет: https://blog.kivy.org/2014/01/positionsize-of-widgets-in-kivy/

всё с позиционированием выпадающего меню разобрался,сейчас не могу понять как добавить другие виджеты, создал вот такой код

from kivy.app import App
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.base import runTouchApp


class CustomDropDown(DropDown):
    pass


class cont(FloatLayout):
    pass


class app(App):
    def build(self):

        dropdown = CustomDropDown()
        mainbutton = Button(text='что ищем?', size_hint=(None, None))
        mainbutton.pos_hint = {'center_x': 0.5, 'center_y': 0.5}
        mainbutton.bind(on_release=dropdown.open)
        dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))
        return mainbutton


if __name__ == '__main__':
    app().run()
    runTouchApp(cont())

и kv файл

<CustomDropDown>:
    Button:
        text: 'perimetr'
        size_hint_y:  None
        height:  44
        on_release:  root.select('perimetr')

    Button:
        text: 'ploshad'
        size_hint_y:  None
        height:  44
        on_release:  root.select('ploshad')

<cont>:
    Button:
        text: 'HELLO'
        size_hint: None, None
        pos_hint: {'center_x': 0.2, 'center_y': 0.2}

но при запуске появляется только меню, но если открыть меню и нажать на крестик (для выхода из приложения), то кнопка появляется, как исправить?

выше было про это

я прочитал и не нашел там нужной информации, я хочу создать второй контейнер с виджетами, и при прорисовке окна показывать оба контейнера, как это сделать?

Так это ж и есть

Только в контейнер положить не сразу кнопки, а еще два контейнера.
Контейнер — какой-нибудь Layout или свой виджет.

https://techwithtim.net/tutorials/kivy-tutorial/the-kv-design-language-kv-file/
https://kivy.org/doc/stable/guide/lang.html#designing-with-the-kivy-language

Надо что-то одно из этого выбрать )