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.4
- Fix error in january due to week 53
- Fix DateEntry for ttk themes other than ‘clam’
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size tkcalendar-1.1.4-py2.7.egg (11.3 kB) | File type Egg | Python version 2.7 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.4-py2-none-any.whl (14.4 kB) | File type Wheel | Python version py2 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.4-py3.6.egg (11.3 kB) | File type Egg | Python version 3.6 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.4-py3-none-any.whl (14.4 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.4.tar.gz (12.3 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for tkcalendar-1.1.4-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dce653867c56b8d3ce2f3ad316f5cd1f57863041a193f389d87de3bcd540c133 |
|
MD5 | 27fae32a50b87608b129f5291082d7a4 |
|
BLAKE2-256 | 88922e7d16bfceb2ecfe481d2d3566002fc314d1af2d418e2c51d5c1ea58e550 |
Hashes for tkcalendar-1.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e6d6e60de2dcad8b94b3027b74d03ff66ace9a1681a03a908de177ef880cc39 |
|
MD5 | b4a238a75fc90004794b6bf91d5e7535 |
|
BLAKE2-256 | e7eee678febe2f07408e78c3e95574d6168f66cf7a8be5d0bd672feafb648c23 |