61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
from kivy.app import App
|
|
from kivy.core.window import Window
|
|
from kivy.modules import inspector
|
|
from kivy.uix.boxlayout import BoxLayout
|
|
from kivy.uix.button import Button
|
|
from kivy.uix.gridlayout import GridLayout
|
|
from kivy.uix.scrollview import ScrollView
|
|
from kivy.uix.textinput import TextInput
|
|
|
|
|
|
class TestApp(App):
|
|
def __init__(self):
|
|
App.__init__(self)
|
|
self.results = []
|
|
|
|
def on_omnibox_change(self, _instance, value):
|
|
print("⇒", value)
|
|
while self.results:
|
|
btn = self.results.pop()
|
|
self.layout.remove_widget(btn)
|
|
|
|
for i in range(100):
|
|
btn = Button(text=value + str(i), height=40, size_hint_y=None)
|
|
self.layout.add_widget(btn)
|
|
self.results.append(btn)
|
|
|
|
def build(self):
|
|
self.root = BoxLayout(orientation="vertical", spacing=5)
|
|
# Make sure the height is such that there is something to scroll.
|
|
self.root.bind(minimum_height=self.root.setter("height"))
|
|
|
|
self.omnibox = TextInput(
|
|
text="",
|
|
hint_text="Search here files and headlines",
|
|
multiline=False,
|
|
write_tab=False,
|
|
size_hint_y=None,
|
|
height=40,
|
|
focus=False,
|
|
)
|
|
self.omnibox.bind(text=self.on_omnibox_change)
|
|
self.root.add_widget(self.omnibox)
|
|
|
|
self.viewer = ScrollView(
|
|
size_hint=(1, 1), size=(Window.width / 2, Window.height / 2)
|
|
)
|
|
self.layout = BoxLayout(orientation="vertical", spacing=2, size_hint_y=None)
|
|
self.layout.bind(minimum_height=self.layout.setter("height"))
|
|
for i in range(100):
|
|
btn = Button(text=str(i), height=40, size_hint_y=None)
|
|
self.layout.add_widget(btn)
|
|
self.results.append(btn)
|
|
|
|
self.viewer.add_widget(self.layout)
|
|
self.root.add_widget(self.viewer)
|
|
inspector.create_inspector(Window, self.root)
|
|
return self.root
|
|
|
|
|
|
TestApp().run()
|