2014-09-13 4 views
0

Когда это выпадающее меню сделано в Kivy, если размер окна увеличивается, затем снова уменьшается, меню перестает работать. Это какая-то ошибка?Kivy drop down bug

from kivy.app import App 
from kivy.uix.spinner import Spinner, SpinnerOption 
from kivy.base import runTouchApp 
from kivy.uix.gridlayout import GridLayout 
from kivy.lang import Builder 
from kivy.uix.popup import Popup 
from kivy.uix.button import Button 
from kivy.uix.dropdown import DropDown 

Builder.load_string(''' 
<Janela1>: 
    size_hint: .4, .4 
    auto_dismiss: True 
    title: 'HAAAAAAAAAAAAAAAAa' 
    Button: 
     text: 'Click me to dismiss' 
     on_press: root.dismiss() 
''') 


class Tela(GridLayout): 
    pass 

class Janela1(Popup): 
    pass 

class programa(App): 
    def build(self): 
     dropdown=DropDown() 
     raiz = Tela(cols=4, row_force_default=True, row_default_height=40) #declarando o fundo 

     btn = Button(text='Valor 1', size_hint_y=None, height=44) 
     btn.bind(on_release=self.show_popup) 
     btn.bind(on_release=lambda btn: dropdown.select(btn.text)) 
     dropdown.add_widget(btn) 


     i = 0 
     for lista in range(4): 
      lista=['Intervalos','Ritmo','Identificacao dos Modos','Acordes'] 
      mainbutton = Button(text='%s' % lista[i], size_hint_y=None, height=44) 
      i += 1 

      mainbutton.bind(on_release=dropdown.open) 

      mainbutton.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x)) 
      raiz.add_widget(mainbutton) 


     return raiz 

    def show_popup(self, raiz): 
     p = Janela1() 
     p.open() 


if __name__ == '__main__': 
    programa().run() 
+0

Я запустил этот код, и он не сломался для меня. Какую ОС вы используете? Я тестировал Ubuntu linux. – Lobsterman

+0

Windows 7 (64) D: –

ответ

0

Я использовал python и kivy в окнах и столкнулся со всеми проблемами. Я использовал виртуальную машину с виртуальной машиной kivy и решил массу проблем. Поэтому, если вы собираетесь придерживаться окон для разработки, я бы использовал это: http://kivy.org/docs/guide/packaging-android-vm.html