Existe-t-il une manière standard pour les applications tkinter de permettre à l'utilisateur de choisir une date ?
Réponses
Trop de publicités?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()
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.