【发布时间】:2020-11-07 04:42:57
【问题描述】:
您好,我正在构建一个 GUI,应该可以在其中插入存储在 sqllite3 数据库中的您的姓名和生日。 我使用 Tkcalendar 模块让人们选择它的生日。 我的问题是我不知道如何读出日期。 我希望有人可以帮助我!
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()```
【问题讨论】:
-
你读过documentation吗? DateEntry 有一个
get_date()方法。 -
另外,
eingabefelddatum= DateEntry(root, width = 20, textvariable = eingabefelddatum, bg ="yellow").pack()没有意义,eingabefelddatum不能同时是DateEntry和文本变量(StringVar) -
DateEntry只是一个带有下拉日历的条目,因此如果您能够检索到此人的姓名,那么您可以对生日做同样的事情(您会得到日期作为字符串,而不是日期时间)。 -
我相信
eingabefelddatum.selection_get()应该可以完成这项工作
标签: python tkinter visual-studio-code module tkcalendar