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.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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0615c681d333a44dfb5b843322a5da434a10633088f0f891d236ab2d524400a |
|
MD5 | bad0f25f7deab1fb5eb7fb55c1edfb1e |
|
BLAKE2b-256 | 360bd0021d7a1a3005390f1c465faf62044884fb02d7e2cb0d7877d1fc23d055 |
Hashes for tkcalendar-1.1.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebcf3b37e9791cd5d39ed5cd74f815cbae711ba2072ca00f05a3a7e632ab7f81 |
|
MD5 | 689a5225222bb78e14621accfbd18fc5 |
|
BLAKE2b-256 | 2efb03d1750152e8d713fa307e28627beebeb92c0d143a77a275e08c34ac2eaf |