如何在 tkcalendar 中用空白日期初始化日历?
How to initialise the calendar with blank date in tkcalendar?
我正在尝试创建一个日期选择器。我在网上找到了适合我的代码。但是,使用此代码,程序在启动时默认显示今天的日期,如下所示:
有没有办法像这样将默认日期设置为空白?
我一直在寻找答案,但没有找到答案。
import tkinter as tk
from tkinter import ttk
from tkcalendar import DateEntry
from datetime import date
root = tk.Tk()
style = ttk.Style(root)
style.theme_use('clam')
class MyDateEntry(DateEntry):
def __init__(self, master=None, **kw):
DateEntry.__init__(self, master=None, **kw)
self._top_cal.configure(bg='black', bd=1)
de = MyDateEntry(root,selectbackground='gray80',
selectforeground='black',
normalbackground='white',
normalforeground='black',
background='gray90',
foreground='black',
bordercolor='gray90',
othermonthforeground='gray50',
othermonthbackground='white',
othermonthweforeground='gray50',
othermonthwebackground='white',
weekendbackground='white',
weekendforeground='black',
headersbackground='white',
headersforeground='gray70')
de.pack()
root.mainloop()
DateEntry
继承自 Entry
小部件。因此,您可以像删除普通 Entry
小部件一样删除内容:
class MyDateEntry(DateEntry):
def __init__(self, master=None, **kw):
DateEntry.__init__(self, master=None, **kw)
self._top_cal.configure(bg='black', bd=1)
self.delete(0, "end")
我不需要制作class。此解决方案完全可以正常工作:
date_started = DateEntry(root, locale='en_US', date_pattern='yyyy-mm-dd')
date_started.delete(0, "end") ## Only this line needed to be added to clear the field.
date_started.place(x=150, y=60, height=25, width=120)
我正在尝试创建一个日期选择器。我在网上找到了适合我的代码。但是,使用此代码,程序在启动时默认显示今天的日期,如下所示:
有没有办法像这样将默认日期设置为空白?
我一直在寻找答案,但没有找到答案。
import tkinter as tk
from tkinter import ttk
from tkcalendar import DateEntry
from datetime import date
root = tk.Tk()
style = ttk.Style(root)
style.theme_use('clam')
class MyDateEntry(DateEntry):
def __init__(self, master=None, **kw):
DateEntry.__init__(self, master=None, **kw)
self._top_cal.configure(bg='black', bd=1)
de = MyDateEntry(root,selectbackground='gray80',
selectforeground='black',
normalbackground='white',
normalforeground='black',
background='gray90',
foreground='black',
bordercolor='gray90',
othermonthforeground='gray50',
othermonthbackground='white',
othermonthweforeground='gray50',
othermonthwebackground='white',
weekendbackground='white',
weekendforeground='black',
headersbackground='white',
headersforeground='gray70')
de.pack()
root.mainloop()
DateEntry
继承自 Entry
小部件。因此,您可以像删除普通 Entry
小部件一样删除内容:
class MyDateEntry(DateEntry):
def __init__(self, master=None, **kw):
DateEntry.__init__(self, master=None, **kw)
self._top_cal.configure(bg='black', bd=1)
self.delete(0, "end")
我不需要制作class。此解决方案完全可以正常工作:
date_started = DateEntry(root, locale='en_US', date_pattern='yyyy-mm-dd')
date_started.delete(0, "end") ## Only this line needed to be added to clear the field.
date_started.place(x=150, y=60, height=25, width=120)