日历Kivy中每个新一天的新空小部件



我有一个应用程序,我想在某个日期保存一些事件。顶部按钮打开日历,"添加新事件";按钮在GridLayout中添加一个新事件。
第一个问题,我不能在顶部按钮上显示当前日期。我可以显示任何日期,但不能显示应用程序启动时的当前日期。
其次,我想为每个新的日期(或新的一天),一个空的GridLayout,在那里我可以添加新的事件,或完成旧的,也许以后保存所有的东西。
谢谢!Python代码:

from kivymd.app import MDApp
from kivy.uix.boxlayout import BoxLayout
from kivymd.uix.picker import MDDatePicker
class MyBox(BoxLayout):
def on_save(self, instance, value, date_range):
MDApp.get_running_app().root.ids.date.text = str(value)
def show_date(self):
date = MDDatePicker()
date.bind(on_save= self.on_save)
date.open()
def add_item(self):
MDApp.get_running_app().root.ids.grd_id.add_widget(EventTemplate())
class EventTemplate(BoxLayout):
pass
class MyAppApp(MDApp):
pass
MyAppApp().run()    

KV代码:

MyBox:
<MyBox>:
orientation: "vertical"
Button:
id: date
size_hint: 1, 0.2
on_release: root.show_date()
ScrollView:
canvas.before:
Color:
rgba: 0, 0, 1, 1
Rectangle:
pos: self.pos
size: self.size
GridLayout:
size_hint: 1, None
height: self.minimum_height
id: grd_id
spacing: 10
cols: 1
EventTemplate:
EventTemplate:
Button:
on_release: root.add_item()
size_hint: 1, 0.2
text: "Add New Event"
<EventTemplate>:
size_hint_y: None
spacing: 1
CheckBox:
size_hint: 0.1, 1
canvas.before:
Color:
rgba: 0, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size
Label:
text: "Some Event"
canvas.before:
Color:
rgba: 0, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size

您可以为您的MyAppApp添加一个on_start()方法:

def on_start(self):
self.root.ids.date.text = str(datetime.date.today())

最新更新