Есть ли способ изменить цвет tkcalendar? - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь совместить 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")

; тем не менее, мой календарь все еще остается серым, а не сливается с черным фоном окна. Можно ли изменить фактический цвет фона календаря?

enter image description here

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Вы делаете это правильно, за исключением того, что тема по умолчанию 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.

screenshot

1 голос
/ 29 апреля 2020

Класс Calendar в модуле tkcalendar является подклассом ttk.Frame.

class Calendar(ttk.Frame):

. Вы должны использовать , определяющий стиль c для ttk , который использует темы для изменения своих атрибутов.

...