【发布时间】:2014-11-07 13:28:45
【问题描述】:
在Kivy中制作这个下拉菜单时,如果窗口大小增大,然后又减小,菜单停止工作。 这是某种错误吗?
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()
【问题讨论】:
-
我运行了这段代码,但它并没有中断。您使用的是什么操作系统?我在 Ubuntu linux 上测试过。
标签: python frameworks kivy