加载 tkinter 时,DateEntry 框的背景保持白色。我尝试了各种样式,但仍然没有运气。
# Create a custom style for DateEntry
style = ttk.Style(root)
style.configure("CustomDateEntry.TCombobox", fieldbackground="#FF9393", background="#FF9393")
style.configure('CustomDateEntry.TEntry', fieldbackground="#FF9393", background="#FF9393")
start_date_entry = DateEntry(
booking_window,
style="CustomDateEntry.TEntry",
date_pattern="yyyy-mm-dd" # Ensure the date format is correct
)
start_date_entry.configure(style='CustomDateEntry.TEntry')
start_date_entry.place(
x=824.0,
y=242.0,
width=152.0,
height=22.0
)
我尝试了各种样式,使输入框的背景变成粉红色,但没有运气。
问题在于你对 DateEntry 小部件应用样式的方式。 DateEntry 小部件实际上是一个组合框 (用于下拉日历) 和一个条目小部件 (用于日期显示)。你正在为 TCombobox 和 TEntry 配置样式,但你需要为 DateEntry 小部件本身配置样式。
以下是如何更改 DateEntry 背景颜色的方法:
import tkinter as tk
from tkinter import ttk
from tkcalendar import DateEntry
# 创建主窗口
root = tk.Tk()
root.geometry("400x200")
# 为 DateEntry 创建自定义样式
style = ttk.Style(root)
# 配置 TCalendar 对象的样式
style.configure('CustomDateEntry.DateEntry',
fieldbackground="#FF9393", # 设置输入字段背景颜色
background="#FF9393", # 设置整体小部件背景颜色
foreground="black" # 设置文本颜色,如果需要
)
# 创建 DateEntry 并应用样式
start_date_entry = DateEntry(
root,
style="CustomDateEntry.DateEntry",
date_pattern="yyyy-mm-dd"
)
start_date_entry.pack(pady=20)
root.mainloop()
在这个改进的代码中:
-
我们使用
style.configure('CustomDateEntry.DateEntry', ...)
直接针对 DateEntry 小部件类型创建样式。 -
我们在
DateEntry
构造函数中使用style="CustomDateEntry.DateEntry"
将此样式应用于我们的start_date_entry
实例。
通过这些更改,你的 DateEntry 小部件现在应该具有你想要的粉红色背景颜色。
标签:python,tkinter,styling,tkcalendar From: 78805709