I want to get the selected date of a tkcalendar calendar but it throws an AttributeError: 'NoneType' object has no attribute 'get_date'
and I don't know why.
Can somebody help me?
Here's my code:
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())
That's why it is not recommended to use the .pack(), .grid(), .place() methods immediately when defining a label because it returns None You should split the command, and instead of what you did, proceed like this:
self.startCalendar = Calendar(...)
self.startCalendar.pack(...)
I had the same problem before and it was really annoying.