【发布时间】:2019-03-26 01:01:29
【问题描述】:
我正在努力获得一个在所有屏幕上都相同的选项菜单。选项菜单是一个带有几个选项的弹出窗口。调用弹出窗口时,它不会保存输入。当 Switch 按钮更改为非活动状态时,在用户关闭并重新打开弹出窗口后,它默认恢复为活动状态。
如何保存用户的输入?
from kivy.app import App
from kivy.core.window import Window
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.switch import Switch
Builder.load_string('''
<OptionMenu@Button>:
text: "Option Menu"
size_hint_y: .3
on_press:
app.option_menu_function()
<BoxLayout@BoxLayout>:
orientation: "vertical"
<HomeScreen>:
BoxLayout:
OptionMenu:
Label:
text: "Home Screen"
Button:
text: "Next Screen >"
on_release:
app.root.current = "screen1"
<Screen1>:
BoxLayout:
OptionMenu:
Label:
text: "Screen 2"
Button:
text: "Next Screen >"
on_release:
app.root.current = "homescreen"
<SM>:
name: "sm"
id: sm
HomeScreen:
name: "homescreen"
id: hs
Screen1:
name: "screen1"
id: s1
''')
class HomeScreen(Screen):
pass
class Screen1(Screen):
pass
class SM(ScreenManager):
pass
class MyApp(App):
def build(self):
global sm
sm = SM()
return sm
def option_menu_function(self):
box = BoxLayout(orientation = "horizontal")
switch = Switch(active = True)
popup = Popup(content = box, auto_dismiss = True, size_hint = (None, None), size = (Window.width/1.5, Window.width/1.5))
box.add_widget(switch)
popup.open()
if __name__ == "__main__":
MyApp().run()
【问题讨论】: