Tkcalendar 配置 DateEntry 小部件

Tkcalendar configure DateEntry widget

是否有任何方法可以像使用普通条目小部件(不是下拉日历)那样配置 DateEntry 小部件本身?例如更改字体、浮雕或背景等...

我试过以下方法:

myDateEntry.config(background='red')

但我刚得到:

AttributeError: 'DateEntry' 对象没有属性 'background'

当我定义 DateEntry 小部件时,我可以执行以下操作:

myDateEntry=DateEntry(root,background='red')

这不会导致错误,只会更改下拉日历的背景。

DateEntry 小部件基于 ttk.Entry,而不是 tk.Entry,因此您必须使用样式来更改其外观。这在文档中有解释:https://tkcalendar.readthedocs.io/en/stable/howtos.html#widget-styling

ttk.Entry一样,如果你想要红色背景,你需要将样式的fieldbackground选项设置为'red',除了要更改的样式是'DateEntry' 而不是 'TEntry':

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

root = tk.Tk()
style = ttk.Style(root)
# create custom DateEntry style with red background
style.configure('my.DateEntry', fieldbackground='red')
# create DateEntry using the custom style
dateentry = DateEntry(root, style='my.DateEntry') 
dateentry.pack()

root.mainloop()

注意: 并非所有 ttk 主题都允许更改 fieldbackground 小部件,尤其是 Windows 默认主题。因此,为了能够更改它,需要先使用 style.theme_use('clam') 更改主题以使用,例如,'clam' 主题。