0

有没有办法像使用普通条目小部件(而不是下拉日历)一样配置 DateEntry 小部件本身?例如更改字体、浮雕或背景等...

我尝试了以下方法:

myDateEntry.config(background='red')

但我只是得到:

AttributeError:“DateEntry”对象没有属性“背景”

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

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

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

4

1 回答 1

2

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

就像 a 一样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')以使用例如“蛤”主题。

于 2020-01-06T08:46:48.387 回答