• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Kivy. Ukrycie przycisków przy starcie aplikacji

0 głosów
54 wizyt
pytanie zadane 28 listopada 2020 w Python przez Miki Bywalec (2,450 p.)
zamknięte 30 listopada 2020 przez Miki

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 wink

komentarz zamknięcia: rozwiązałem problem ;)
komentarz 30 listopada 2020 przez Miki Bywalec (2,450 p.)

dla potomnych:

wystarczy dodać

    Widget:
        on_parent: dropdown.dismiss()

po głównym przycisku o id: btn

Podobne pytania

0 głosów
0 odpowiedzi 29 wizyt
pytanie zadane 5 grudnia 2020 w Python przez Miki Bywalec (2,450 p.)
0 głosów
1 odpowiedź 84 wizyt
pytanie zadane 21 listopada 2020 w Python przez Miki Bywalec (2,450 p.)
0 głosów
0 odpowiedzi 40 wizyt
pytanie zadane 31 stycznia 2020 w Python przez WojtaZio23 Użytkownik (520 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

85,707 zapytań

134,502 odpowiedzi

298,523 komentarzy

56,629 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...