Kivy MDDatePicker - TypeError: __init__() 缺少 1 个必需的位置参数:'callback'

时间:2021-03-19 10:27:15

标签: python datepicker kivy kivymd

https://kivymd.readthedocs.io/en/latest/components/pickers/index.html#mddatepicker

此代码来自官方演示页面,所以它可能是 Github 问题要提出?

小部件正在测试中。因此,如果您将发现的错误告知我们,我们将不胜感激。

from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.picker import MDDatePicker

KV = '''
MDFloatLayout:

    MDToolbar:
        title: "MDDatePicker"
        pos_hint: {"top": 1}
        elevation: 10

    MDRaisedButton:
        text: "Open time picker"
        pos_hint: {'center_x': .5, 'center_y': .5}
        on_release: app.show_date_picker()
'''


class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)

    def on_save(self, instance, value, date_range):
        '''
        Events called when the "OK" dialog box button is clicked.

        :type instance: <kivymd.uix.picker.MDDatePicker object>;

        :param value: selected date;
        :type value: <class 'datetime.date'>;

        :param date_range: list of 'datetime.date' objects in the selected range;
        :type date_range: <class 'list'>;
        '''

        print(instance, value, date_range)

    def on_cancel(self, instance, value):
        '''Events called when the "CANCEL" dialog box button is clicked.'''

    def show_date_picker(self):
        date_dialog = MDDatePicker()
        date_dialog.bind(on_save=self.on_save, on_cancel=self.on_cancel)
        date_dialog.open()


Test().run()

TypeError: __init__() missing 1 required positional argument: 'callback'

1 个答案:

答案 0 :(得分:0)

MDDatePicker 不适用于 kivymd-0.104.1。您必须安装 kivymd-0.104.2.dev0 才能运行。

pip uninstall kivymd
pip install https://github.com/kivymd/KivyMD/archive/master.zip