Skip to main content

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.5

    • Fix endless triggering of <<ThemeChanged>> event in DateEntry

  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tkcalendar-1.1.5.tar.gz (28.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tkcalendar-1.1.5-py3.6.egg (11.5 kB view details)

Uploaded Egg

tkcalendar-1.1.5-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

tkcalendar-1.1.5-py2.7.egg (11.5 kB view details)

Uploaded Egg

tkcalendar-1.1.5-py2-none-any.whl (14.5 kB view details)

Uploaded Python 2

File details

Details for the file tkcalendar-1.1.5.tar.gz.

File metadata

  • Download URL: tkcalendar-1.1.5.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tkcalendar-1.1.5.tar.gz
Algorithm Hash digest
SHA256 8a579df321c1156055bb18f1e197c6ba3e682a862c7f04a7387bab40a0f16b7e
MD5 32979c61eab4a137d82dd4aaabfe2916
BLAKE2b-256 f3ddac79097f5dc886ab29cf3fe991bb2f4364aa14508d6e3b3784343d7c21ce

See more details on using hashes here.

File details

Details for the file tkcalendar-1.1.5-py3.6.egg.

File metadata

File hashes

Hashes for tkcalendar-1.1.5-py3.6.egg
Algorithm Hash digest
SHA256 e509acaaf4d446edf518dd76b3938cd0a57d97a62eb01670d32b9a316f843ec6
MD5 06bb4d77b8bb99d1f38658e78ceb368c
BLAKE2b-256 499366f08b774184f601e2084075cb05571b15d0191e4da6001c02b77a8fe9bd

See more details on using hashes here.

File details

Details for the file tkcalendar-1.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for tkcalendar-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5ca91824c49bfa24396b77805c76de3d4c642fb6f0e7180a74c0042baa912d0b
MD5 e8a5f990cb36b55a23708723759f7fe5
BLAKE2b-256 a1391a5cd1913f5ed5ef5a3714ec43e329d18756dfa83d5baf562a86b0ea4e6d

See more details on using hashes here.

File details

Details for the file tkcalendar-1.1.5-py2.7.egg.

File metadata

File hashes

Hashes for tkcalendar-1.1.5-py2.7.egg
Algorithm Hash digest
SHA256 8f842187c946cd6c5fcbd1f4fb48c389f3a1d0cec8aa098df0e6cdf443519596
MD5 515b8795bf4b1467a700f7dc0d9a1ad1
BLAKE2b-256 5387a0bdbd8409ae5d66602036c9ecc0c383ed947ed99e60e280334115cda933

See more details on using hashes here.

File details

Details for the file tkcalendar-1.1.5-py2-none-any.whl.

File metadata

File hashes

Hashes for tkcalendar-1.1.5-py2-none-any.whl
Algorithm Hash digest
SHA256 ce206dd3f54c8ca33da06dd6619e825392e8a7277025f6716285d416017ed187
MD5 f59fc2ddf2dc732356ba396c632a1990
BLAKE2b-256 616ffa348822ab40308f45a3e70dafb4bc777aa568cdadf6572f2c793cc59f1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page