Python 单击标签时,菜单按钮消失
在下面的代码中,当我单击标签上的时,菜单按钮从屏幕上消失。我怎样才能解决这个问题 我使用kivy 1.9.2dev在windows 10上尝试了这一点 代码只是创建一个屏幕管理器,然后添加两个屏幕。然后添加垂直和水平框布局Python 单击标签时,菜单按钮消失,python,kivy,kivy-language,Python,Kivy,Kivy Language,在下面的代码中,当我单击标签上的时,菜单按钮从屏幕上消失。我怎样才能解决这个问题 我使用kivy 1.9.2dev在windows 10上尝试了这一点 代码只是创建一个屏幕管理器,然后添加两个屏幕。然后添加垂直和水平框布局 from kivy.app import App from kivy.uix.screenmanager import ScreenManager, Screen from kivy.uix.dropdown import DropDown from kivy.lang im
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.dropdown import DropDown
from kivy.lang import Builder
Builder.load_string('''
<TheScreenManager>:
Screen1:
<Screen1>:
name: 'screen1'
BoxLayout:
orientation: 'vertical'
BoxLayout: # Menu
size_hint_y: None
orientation: 'horizontal'
height: 48
DropDown1:
Label:
id: label
text: 'I am a label'
font_size: 30
size_hint_y: 0.99
<DropDown1>:
Button:
id:btn1
text: 'btn1'
on_release: dropdown1.open(self)
size_hint_y: None
height: '48dp'
DropDown:
id: dropdown1
on_parent: self.dismiss()
on_select: btn1.text = '{}'.format(args[1])
Button:
text: 'My first Item'
size_hint_y: None
height: 44
on_release: dropdown1.select('item1')
''')
class Screen1(Screen):
pass
class DropDown1(DropDown):
pass
class DropDown2(DropDown):
pass
class EraserDropDown(DropDown):
pass
class Screen2(Screen):
pass
class TheScreenManager(ScreenManager):
pass
class TheApp(App):
def build(self):
return TheScreenManager()
TheApp().run()
这里的问题是,您在类中继承了下拉列表。您正在kvlang中的该类中创建另一个下拉列表。 请尝试继承BoxLayout。这将解决您的问题。 像这样:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
<TheScreenManager>:
Screen1:
<Screen1>:
name: 'screen1'
BoxLayout:
orientation: 'vertical'
BoxLayout: # Menu
size_hint_y: None
orientation: 'horizontal'
height: 48
DropDown1:
Label:
id: label
text: 'I am a label'
font_size: 30
size_hint_y: 0.99
<DropDown1>:
Button:
id:btn1
text: 'btn1'
on_release: dropdown1.open(self)
size_hint_y: None
height: '48dp'
DropDown:
id: dropdown1
on_parent: self.dismiss()
on_select: btn1.text = '{}'.format(args[1])
Button:
text: 'My first Item'
size_hint_y: None
height: 44
on_release: dropdown1.select('item1')
''')
class Screen1(Screen):
pass
class DropDown1(BoxLayout):
pass
class Screen2(Screen):
pass
class TheScreenManager(ScreenManager):
pass
class TheApp(App):
def build(self):
return TheScreenManager()
TheApp().run()