55 votes

Comment créer un sélecteur de date dans tkinter ?

Existe-t-il une manière standard pour les applications tkinter de permettre à l'utilisateur de choisir une date ?

31voto

Garima Tiwari Points 1174

Au cas où quelqu'un en aurait encore besoin, voici un code simple pour créer un widget Calendar et DateEntry à l'aide du package tkcalendar.

pip install tkcalendar (pour installer le paquet)

 try:
    import tkinter as tk
    from tkinter import ttk
except ImportError:
    import Tkinter as tk
    import ttk

from tkcalendar import Calendar, DateEntry

def example1():
    def print_sel():
        print(cal.selection_get())

    top = tk.Toplevel(root)

    cal = Calendar(top,
                   font="Arial 14", selectmode='day',
                   cursor="hand1", year=2018, month=2, day=5)
    cal.pack(fill="both", expand=True)
    ttk.Button(top, text="ok", command=print_sel).pack()

def example2():
    top = tk.Toplevel(root)

    ttk.Label(top, text='Choose date').pack(padx=10, pady=10)

    cal = DateEntry(top, width=12, background='darkblue',
                    foreground='white', borderwidth=2)
    cal.pack(padx=10, pady=10)

root = tk.Tk()
s = ttk.Style(root)
s.theme_use('clam')

ttk.Button(root, text='Calendar', command=example1).pack(padx=10, pady=10)
ttk.Button(root, text='DateEntry', command=example2).pack(padx=10, pady=10)

root.mainloop()

11voto

Deepak Joshi Points 101

Essayez avec ce qui suit :

 from tkinter import *

from tkcalendar import Calendar,DateEntry

root = Tk()

cal = DateEntry(root,width=30,bg="darkblue",fg="white",year=2010)

cal.grid()

root.mainloop()

où la tkcalendar doit être téléchargée et installée via la commande pip install tkcalender .

5voto

fictivelogic Points 139

Non, mais vous pouvez l'obtenir de l'utilisateur en tant qu'élément datetime à partir d'une chaîne formatée.

Exemple:

 import datetime

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

Consultez http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior . C'est pratique, bien que ce ne soit pas le moyen le plus convivial d'obtenir un rendez-vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X