我正在尝试将tkcalendar与窗口融合在一起。
import tkinter
from tkcalendar import Calendar
window = tkinter.Tk()
window.configure(background = "black")
cal = Calendar(window, background = "black" , disabledbackground = "black" , borderbackground = "black" , headersbackground = "black" , normalbackground = "black" )
cal.config(background = "black")
cal.pack()
window.mainloop()
我已经阅读了tkcalendar文档,并尝试通过调用小部件类的configure方法来更改所有样式元素:
cal.configure(background = "black")
;但是,我的日历仍然保持灰色,而不是融合到黑色窗口背景中。可以更改日历的实际背景颜色吗?
答案 0 :(得分:1)
Calendar
模块中的tkcalendar
类是subclass of ttk.Frame
。
class Calendar(ttk.Frame):
您必须使用使用主题的styling specific to ttk来更改其属性。
答案 1 :(得分:1)
您的做法是正确的,除了OSX默认主题不支持更改背景颜色(我认为它基于图片,因此您只能更改文本颜色)。 解决方案是使用其他ttk主题(例如clam或alt):
import tkinter
from tkinter import ttk
from tkcalendar import Calendar
window = tkinter.Tk()
window.configure(background = "black")
style = ttk.Style(window)
style.theme_use('clam') # change theme, you can use style.theme_names() to list themes
cal = Calendar(window, background="black", disabledbackground="black", bordercolor="black",
headersbackground="black", normalbackground="black", foreground='white',
normalforeground='white', headersforeground='white')
cal.config(background = "black")
cal.pack()
顺便说一句,'borderbackground'选项不存在,正确的名称是'bordercolor'。