Sunday, October 17, 2021

Date Picker

 



date.py

from kivy.lang import Builder

from kivymd.app import MDApp

from kivymd.uix.pickers import MDDatePicker


class MainApp(MDApp):

    def build(self):

        self.theme_cls.theme_style = "Light"

        self.theme_cls.primary_palette = "BlueGray"

        return Builder.load_file('date.kv')


    # Click OK date

    def on_save(self, instance, value, date_range):

        self.root.ids.my_label.text = str(value)


    # Click OK date Range

    def on_save_range(self, instance, value, date_range):

        self.root.ids.my_label.text = \

            f'{str(date_range[0])} thru {str(date_range[-1])}'

        

    # Click Cancel

    def on_cancel(self, instance, value):

        self.root.ids.my_label.text = "Clicked Cancel"


    def show_date_picker(self):

        date_dialog = MDDatePicker()

        date_dialog.bind(on_save=self.on_save, on_cancel=self.on_cancel)

        date_dialog.open()


    def show_date_range_picker(self):

        date_dialog = MDDatePicker(mode='range')

        date_dialog.bind(on_save=self.on_save_range, on_cancel=self.on_cancel)

        date_dialog.open()


MainApp().run()


date.kv

MDFloatLayout:

    MDRaisedButton:
        text: "Date Picker"
        pos_hint: {'center_x': .5, 'center_y': .5}
        on_release: app.show_date_picker()

    MDRaisedButton:
        text: "Date Range Picker"
        pos_hint: {'center_x': .5, 'center_y': .4}
        on_release: app.show_date_range_picker()

    MDLabel:
        id: my_label
        text: "Some Stuff"
        pos_hint: {'center_x': .95, 'center_y': .3}