3

我正在尝试使 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")

; 但是,我的日历仍然保持灰色,而不是融入黑色窗口背景。是否可以更改日历的实际背景颜色?

在此处输入图像描述

4

2 回答 2

2

你这样做是正确的,除了 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”。

截屏

于 2020-04-29T07:38:46.030 回答
1

模块中的Calendar.tkcalendarttk.Frame

class Calendar(ttk.Frame):

您必须使用特定于 ttk 的样式,该样式使用主题来更改其属性。

于 2020-04-29T04:03:35.193 回答