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.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.1.tar.gz (11.9 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.1-py3.6.egg (22.9 kB view details)

Uploaded Egg

tkcalendar-1.1.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

tkcalendar-1.1.1-py2.7.egg (23.2 kB view details)

Uploaded Egg

tkcalendar-1.1.1-py2-none-any.whl (14.1 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for tkcalendar-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3ba499a67dba523f1a46cabdf6da8b4eb2fe8e046608225b5ace908e59d31633
MD5 aa4b88d42ea8557196e78df5fc233114
BLAKE2b-256 cf1a13688cb65a2ea013ef82351e3b7a71c33ac6c613af593e7ebd7097dc3126

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tkcalendar-1.1.1-py3.6.egg
  • Upload date:
  • Size: 22.9 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tkcalendar-1.1.1-py3.6.egg
Algorithm Hash digest
SHA256 bbf3262b37f172f752217794f2a8863639bc74dc8d6bb2b3788d0e0a306edd3b
MD5 467ec7821089a33ba9b1bd75b72f0f15
BLAKE2b-256 a14487c5881e7fd6e25ba2dab9ab1ec8509bdad3b54d6cb5047461e01c794805

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tkcalendar-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 21bd020639f48cc6cdb0dd14a0297a07daa16ef1f607eb330cde8f282915f502
MD5 854a8bb68f55b5ab0497d8940449dc45
BLAKE2b-256 35bb39c40cb0d090e4b2f8e40ff74f681ea87731ac1e3afd7583e522026c9a37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tkcalendar-1.1.1-py2.7.egg
  • Upload date:
  • Size: 23.2 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tkcalendar-1.1.1-py2.7.egg
Algorithm Hash digest
SHA256 8eeaf0a917d087a141c6f00a4df1b89c1ffa4cf2329d9bfa62bd942f2758d161
MD5 7a6fccd62496ded96311128186237110
BLAKE2b-256 c3870c5e1da94db6054b4dcea48f50d3ea7bbe0fbbb8c3bc44ea742298645c5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tkcalendar-1.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 e534327ac26c5a2ae507b0b7cdf11ac166364281d4232f0ad1577b16bb453372
MD5 4200748b296f79407e96b1625ee83f5d
BLAKE2b-256 61a3b1e22b637c6f14e766a01eb307721334e4648dcee94e43f05508c43d9be4

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