Я работал над графическим интерфейсом, используя TKinter (в Python 3). Когда я закончил, я хотел установить цвет для всех виджетов. У меня не было проблем с изменением цвета виджетов «Текст» и «Кнопка», я просто использовал параметр bg
:
t = Text(master, wrap = WORD, bg = '#ffffb3')
Затем я попытался установить цвет ttk.Combobox
виджетов, я заметил, что у них нет этой опции, поэтому я, наконец, изменил их цвет, используя темы, как описано в этом посте: Как установить фон цвет ттк. Cobobox . Но у меня была проблема с применением темы ко всем окнам. Как вы увидите, если вы попробуете следующий код, тема применяется только к Combobox в первом окне, но не к Combobox в окне, которое создается при нажатии кнопки:
from tkinter import *
from tkinter import ttk
r = Tk()
def callback():
r2 = Tk()
c2 = ttk.Combobox(r2)
c2.pack()
b = Button(r, text = 'Open', command = callback)
b.pack()
combostyle = ttk.Style()
combostyle.theme_create('combostyle', parent = 'alt', settings = {'TCombobox':{'configure':
{'fieldbackground': '#ffff99', 'background': '#ffcc66'}}})
combostyle.theme_use('combostyle')
c = ttk.Combobox(r)
c.pack()
r.mainloop()
Это первый раз, когда я использую темы в TKinter, так что извините, если я сделал глупую ошибку. Я искал в Интернете и не нашел никакого решения. Любая помощь будет оценена!