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.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.2-py2.7.egg (23.7 kB) | File type Egg | Python version 2.7 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.2-py2-none-any.whl (14.3 kB) | File type Wheel | Python version py2 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.2-py3.6.egg (23.5 kB) | File type Egg | Python version 3.6 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.2-py3-none-any.whl (14.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size tkcalendar-1.1.2.tar.gz (27.5 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for tkcalendar-1.1.2-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba29afac6a318d5884c3c99531be528eaf072c3d66ea943f4e9d7752ae72a8b7 |
|
MD5 | 1ceae7576a55d1159e615fe1ad709e2c |
|
BLAKE2-256 | b9d10dc4521898327d6ff17e21140b78bb3e5bb26ea034f4ea6f465cd0afdb72 |
Hashes for tkcalendar-1.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bce0cf6d17828454d3f3ed321baf771b7a06458ee8b7b7f050ec37e8bd49da2 |
|
MD5 | cf53e78df64bc1f8153fd01b942be513 |
|
BLAKE2-256 | 341e85a636a64eb580aac83b7458483fe693eec606776ca94960b51a50533a5c |