Witam,
próbuję zrobić rozwijane menu z wykorzystaniem pliku .kv za pomocą modułu boxlayot i dropdown. Założenie jest, że z przycisku "Press" rozwijają mi się dwie opcje "First item" i "Second item". Wszystko by grało gdyby nie to, że przy starcie programu pokazuje mi wszystkie przyciski. Nie wiem jak ukryć przyciski o nazwie "item" do momentu naciśnięcia "Press".
Zakładam, że jest jakaś opcja, która pozwoli mi ukryć dropdown, do momentu jego wywołania, ale niestety nie znalazłem o tym żadnej informacji w sieci nie licząc tego, że jest tylko kilka poradników z robienia w ten sposób menu.
Druga koncepcją jest stworzenie dodatkowej klasy dla całego dropdown i wywołanie tego przy naciśnięciu przycisku "Press" ale chce uniknąć przenoszenia kodu do pliku .py a nie wiem jak zrobić odwołanie między klasami w pliku .kv
.py
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
kivy.require('2.0.0')
Builder.load_file('dropDown.kv')
class MyBoxLayout(BoxLayout):
pass
class MyApp(App):
def build(self):
return MyBoxLayout()
if __name__ == '__main__':
MyApp().run()
.kv
#:kivy 2.0.0
<MyBoxLayout>:
Button:
id: btn
text: 'Press'
background_color: 1, 1, 0, 1
size_hint_y: None
height: '50dp'
on_release: dropdown.open(self)
DropDown:
id: dropdown
on_select: btn.text = '{}'.format(args[1])
Button:
text: 'First item'
background_color: 1, 0, 1, 1
size_hint_y: None
height: '50dp'
on_release: dropdown.select('First item')
Button:
text: 'Second item'
background_color: 1, 0, 1, 1
size_hint_y: None
height: '50dp'
on_release: dropdown.select('Second item')
Z góry dziękuję za pomoc