Подтвердить что ты не робот

Как создать сборщик дат в tkinter?

Есть ли какой-либо стандартный способ приложений tkinter, позволяющий пользователю выбирать дату?

4b9b3361

Ответ 2

Не так далеко, как я мог найти. Для тех, кто хочет сделать это в будущем:

Я использовал tkSimpleDialog и ttkcalendar.py (с изменениями этого SO post), чтобы сделать CalendarDialog. Эти три файла доступны на моем github.

Ниже приведен код в CalendarDialog.py:

import Tkinter
import ttkcalendar

import tkSimpleDialog

class CalendarDialog(tkSimpleDialog.Dialog):
    """Dialog box that displays a calendar and returns the selected date"""
    def body(self, master):
        self.calendar = ttkcalendar.Calendar(master)
        self.calendar.pack()

    def apply(self):
        self.result = self.calendar.selection

# Demo code:
def main():
    root = Tkinter.Tk()
    root.wm_title("CalendarDialog Demo")

    def onclick():
        cd = CalendarDialog(root)
        print cd.result

    button = Tkinter.Button(root, text="Click me to see a calendar!", command=onclick)
    button.pack()
    root.update()

    root.mainloop()


if __name__ == "__main__":
    main()

Ответ 3

Нет, но вы можете получить его от пользователя как элемент datetime из форматированной строки.

Пример:

import datetime

userdatestring = '2013-05-10'
thedate = datetime.datetime.strptime(userdatestring, '%Y-%m-%d') 

Отъезд http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior. Это удобно, хотя и не самый удобный способ получения даты.