【发布时间】:2022-01-21 00:48:28
【问题描述】:
kvstring = Builder.load_string('''
<AccParGui>:
BoxLayout:
orientation: "vertical"
Accordion:
AccordionItem:
title: 'EIP'
BoxLayout:
Button:
text: 'Into EIP'
GridLayout:
cols: 2
Label:
text: "refresh: "
Switch:
id: switch_eip_refresh
active: True
on_active: root.switch_eip_callback()
AccordionItem:
title: 'About'
Label:
text: 'Financial work aids'
''')
class BrowserPlatform():
def switch_eip_callback():
if self.set_refresh:
accpar_config.set('General', 'set_refresh', 'False') #write INI
self.ids.switch_eip_refresh.active = False
self.set_refresh = False
self.event_homepage_refresh.cancel()
else:
accpar_config.set('General', 'set_refresh', 'True')
self.ids.switch_eip_refresh.active = True
self.set_refresh = True
self.event_homepage_refresh = Clock.schedule_interval(
self.eip_refresh, self.set_refresh_time)
class AccParGui(Widget, BrowserPlatform
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.ids.switch_eip_refresh.active = accpar_config.getboolean('General', 'set_refresh')
# read from ini
class AccParGuiApp(App):
def build(self):
return AccParGui()
if __name__ == '__main__':
AccParGuiApp().run()
我使用 Switch 来切换值。如果 .INI 文件中读取的 Switch 值为 False,则自动执行 on_active 事件(True is not )。 我理解 Switch 的值是属性,Kivy 是自动监控的。即使我不点击切换。但我的意图是只通过点击来改变。我怎样才能做到这一点?希望有人指教,谢谢!
【问题讨论】:
标签: kivy switch-statement