org-editor/main.py
Sergio Martínez Portela 9c79d017ff Initial Kivy test.
2021-03-20 19:44:01 +01:00

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()