tkcalendar 在 get_date() 方法上抛出 AttributeError

tkcalendar throws AttributeError on get_date() method

我想获取 tkcalendar 日历的选定日期,但它抛出一个 AttributeError: 'NoneType' object has no attribute 'get_date',我不知道为什么。

有人可以帮助我吗?

这是我的代码:

class Main(Frame):
    def __init__(self, parent):
        super(Main, self).__init__(parent)

        padding = 10

        # calenders
        mainCalendarFrame = Frame(root)


        # start
        startCalendarFrame = Frame(mainCalendarFrame)

        startLabel = Label(startCalendarFrame, text='Start').pack(fill=X, pady=(0, padding))
        self.startCalendar = Calendar(startCalendarFrame, selectmode='day', year=int(date.today().strftime('%Y')), month=int(date.today().strftime('%m')), day=int(date.today().strftime('%d'))).pack(fill=X, pady=(0, 5))


        mainCalendarFrame.pack(padx=padding, pady=padding)
        settingsFrame.pack(fill=X, padx=padding, pady=padding)
        btnCalculate.pack(fill=X, padx=padding, pady=padding)

    def btn_click(self):
        print(self.startCalendar.get_date())

这就是为什么不建议在定义标签时立即使用 .pack()、.grid()、.place() 方法的原因,因为它 returns None 你应该拆分命令,而不是你所做的,像这样继续:

self.startCalendar = Calendar(...)
self.startCalendar.pack(...)

我之前也遇到过同样的问题,真的很烦人。