How do I get the Value of Tkcalendar/Date Entry

7.7k Views Asked by At

hi I am building a GUI where it should be possible to insert your name and your brthday that get´s stored in a sqllite3 database. I use the Tkcalendar module to let the person choose it´s birthday. My problem is I don´t know how to read out the Date. I hope somebody can help me!

    import sqlite3
verbindung = sqlite3.connect("Datenbanken/geb3.db")
zeiger = verbindung.cursor()
zeiger.execute("""CREATE TABLE IF NOT EXISTS people3(vorname VARCHAR(20), nachname VARCHAR(30), geburtstag DATE );""")

from tkinter import *
from tkcalendar import Calendar, DateEntry

root = Tk()



def speichern():
    zeiger.execute("""INSERT INTO people3 VALUES (?,?,?) """, (eingabefeldvorname.get(), eingabefeldnachname.get(), eingabefelddatum.get()))
    



Label(root, text = "vorname").pack()
eingabefeldvorname=StringVar()
eingabefeld = Entry(root, textvariable = eingabefeldvorname, bg ="red").pack()

Label(root, text = "nachname").pack()
eingabefeldnachname = StringVar()
eingabefeld = Entry(root, textvariable = eingabefeldnachname, bg ="green").pack()

Label(root, text = "Geburtsdatum")


eingabefelddatum= DateEntry(root, width = 20, textvariable = eingabefelddatum, bg ="yellow").pack()

konpf2 = Button(root, text = "speichern", command = speichern).pack()
root.mainloop()



zeiger.execute("SELECT * FROM people3")
inhalt = zeiger.fetchall()
print(inhalt)


def listeleeren():
     zeiger.execute("DELETE FROM people3") 

listeleeren()


verbindung.commit()
verbindung.close()```
1

There are 1 best solutions below

0
On

To get the value of DataEntry, the fuction get_date() works.

Reference: https://pypi.org/project/tkcalendar/#dateentry-widget

also you can use a <<DateEntrySelected>> event which is generated each time the user selects a date with the mouse.

import tkinter as tk
from tkinter import ttk
from tkcalendar import Calendar, DateEntry

def dateentry_view():
    def print_sel(e):
        print(cal.get_date())

    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)
    cal.bind("<<DateEntrySelected>>", print_sel)

root = tk.Tk()
ttk.Button(root, text='DateEntry', command=dateentry_view).pack(padx=10, pady=10)
root.mainloop()