Kivy MDDatePicker TypeError:\uuuu init\uuuu()缺少1个必需的位置参数:“回调”

2024-03-29 06:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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'


Tags: instancefromimportselfdatevalueonsave
2条回答

MDDatePicker不能与kivymd-0.104.1一起使用。您必须安装kivymd-0.104.2.dev0,它才能正常工作

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

您缺少一个参数callback

date_dialog = MDDatePicker(callback=self.get_date)

相关问题 更多 >