Подскажите элемент kivy для текстовых подсказок

Есть элемент TextInput, куда вводится адрес, что можно использовать чтоб под Input'ом выводился список подсказок для адреса? Такое используется в поисковиках Пример


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

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

Можно использовать библиотеку KivyMD - https://kivymd.readthedocs.io/en/latest/components/menu/index.html#bottom-position

from kivy.clock import Clock
from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu

KV = '''
Screen

    MDTextField:
        id: field
        pos_hint: {'center_x': .5, 'center_y': .5}
        size_hint_x: None
        width: "200dp"
        hint_text: "Password"
        on_focus: if self.focus: app.menu.open()
'''


class Test(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.screen = Builder.load_string(KV)
        menu_items = [{"icon": "git", "text": f"Item {i}"} for i in range(5)]
        self.menu = MDDropdownMenu(
            caller=self.screen.ids.field,
            items=menu_items,
            position="bottom",
            callback=self.set_item,
            width_mult=4,
        )

    def set_item(self, instance):
        def set_item(interval):
            self.screen.ids.field.text = instance.text

        Clock.schedule_once(set_item, 0.5)

    def build(self):
        return self.screen


Test().run()

введите сюда описание изображения

→ Ссылка