Calendar and DateEntry widgets for Tkinter
Project description
tkcalendar
tkcalendar is a python module that provides the Calendar and DateEntry widgets for Tkinter. The DateEntry widget is similar to a Combobox, but the drop-down is not a list but a Calendar to select a date. tkcalendar is compatible with both Python 2 and Python 3. It support all locale settings supported by the system and the colors are customizable.
Requirements
Linux, Windows, Mac
Python 2 or 3 with tkinter + ttk (default for Windows but not for Linux)
Installation
Ubuntu: use the PPA ppa:j-4321-i/ppa
$ sudo add-apt-repository ppa:j-4321-i/ppa $ sudo apt-get update $ sudo apt-get install python(3)-tkcalendar
Archlinux:
The package is available on AUR
With pip:
$ pip install tkcalendar
Documentation
Calendar widget
Syntax:
Calendar(master=None, **kw)
Widget keyword options:
Standard options
cursor: cursor to display when the pointer is in the widget
font: font of the calendar, can be a string such as “Arial 20 bold” or a Tkinter Font instance
borderwidth: width of the border around the calendar (integer)
Widget-Specific Options
year, month: initially displayed month, default is current month
day: initially selected day, if month or year is given but not day, no initial selection, otherwise, default is today
locale: locale to use, e.g. “fr_FR” for a French calendar
selectmode: “none” or “day” (default) define whether the user can change the selected day with a mouse click
background: calendar border and month/year name background color
foreground: month/year name foreground color
bordercolor: day border color
selectbackground: selected day background color
selectforeground: selected day foreground color
normalbackground: normal week days background color
normalforeground: normal week days foreground color
othermonthforeground: foreground color for normal week days belonging to the previous/next month
othermonthbackground: background color for normal week days belonging to the previous/next month
othermonthweforeground: foreground color for week-end days belonging to the previous/next month
othermonthwebackground: background color for week-end days belonging to the previous/next month
weekendbackground: week-end days background color
weekendforeground: week-end days foreground color
headersbackground: day names and week numbers background color
headersforeground: day names and week numbers foreground color
Virtual Events
A <<CalendarSelected>> event is generated each time the user selects a day with the mouse.
DateEntry widget
Date selection entry with drop-down calendar.
Syntax:
DateEntry(master=None, **kw)
Widget keyword options:
Keyword options of Calendar to configure the drop-down calendar
Keyword options of ttk.Entry
By default, ‘validate’ is set to ‘focusout’ and ‘validatecommand’ is configured so that each time the widget looses focus, if the content is not a valid date (in locale format ‘%x’), it is reset to the previous valid date.
The widget style is set to ‘DateEntry’. A custom style inheritting from ‘DateEntry’ can be created by naming it ‘<style name>.DateEntry’
Virtual Events
A <<DateEntrySelected>> event is generated each time the user selects a date.
Changelog
tkcalendar 1.1.3
Make DateEntry support initialisation with partial dates (e.g. just year=2010)
Improve handling of wrong year-month-day combinations
tkcalendar 1.1.2
Fix bug after destroying a DateEntry
Fix bug in style and font
tkcalendar 1.1.1
Fix bug when content of DateEntry is not a valid date
tkcalendar 1.1.0
Bug fix:
Fix display of the first days of the next month
Increment year when going from december to january
New widget:
DateEntry, date selection entry with drop-down calendar
New options in Calendar:
borderwidth: width of the border around the calendar (integer)
othermonthbackground: background color for normal week days belonging to the previous/next month
othermonthweforeground: foreground color for week-end days belonging to the previous/next month
othermonthwebackground: background color for week-end days belonging to the previous/next month
tkcalendar 1.0.0
Initial version
Example
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()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for tkcalendar-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f27a119fc18c1eca90c8a56c9599e99225290996906bb77758959f6a386cc630 |
|
MD5 | abab3a3920d8cc5bef22106062b0f890 |
|
BLAKE2b-256 | c70bd7e1bb21cf0b6c23763cd373d39763b5d9f4c6b3ea4880f96b3cf063faf5 |
Hashes for tkcalendar-1.1.3-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f623ae5877b8f581924d061ca0d1b20fd5ca01f8e9fe86ee9ecc332f58ebd5d |
|
MD5 | c7cbdc73f0eebe05c64cfd5b9ccc24be |
|
BLAKE2b-256 | 412088f6989f1c214b7e795db73f7b765b402c00970e0defd69e2088048a4ad5 |