Цвет окна по умолчанию Tkinter и шестнадцатеричные цветовые коды
Я хотел бы знать цвет окна по умолчанию в Tkinter, когда вы просто создаете окно:
root = Tk()
Если он есть, можно установить виджеты одного цвета или использовать шестнадцатеричный цветовой код? (используя rgb)
Цветовой код, который я нашел для "нормального" окна:
R = 240, G = 240, B = 237
Спасибо.
3 ответа:
Не знаю точно, что вы ищете, но сработает ли это?
import Tkinter mycolor = '#%02x%02x%02x' % (64, 204, 208) # set your favourite rgb color mycolor2 = '#40E0D0' # or use hex if you prefer root = Tkinter.Tk() root.configure(bg=mycolor) Tkinter.Button(root, text="Press me!", bg=mycolor, fg='black', activebackground='black', activeforeground=mycolor2).pack() root.mainloop()Если вы просто хотите найти текущее значение окна и установить виджеты для его использования,
cgetможет быть то, что вы хотите:import Tkinter root = Tkinter.Tk() defaultbg = root.cget('bg') Tkinter.Button(root,text="Press me!", bg=defaultbg).pack() root.mainloop()Если вы хотите установить цвет фона по умолчанию для новых виджетов, вы можете использовать метод
tk_setPalette(self, *args, **kw):root.tk_setPalette(background='#40E0D0', foreground='black', activeBackground='black', activeForeground=mycolor2) Tkinter.Button(root, text="Press me!").pack()Тогда ваши виджеты будут иметь этот цвет фона по умолчанию, без необходимости устанавливать его в параметрах виджета. Есть много полезной информации, предоставленной с встроенные справочные функции
import Tkinter; help(Tkinter.Tk)
Ответ Рудивонстадена привел меня к решению проблемы, хотя по какой-то причине
Однако знание того, что виджет имеет словарь, содержащий его свойства, означает, чтоroot.cget("bg")не удается, потому что"bg"- неизвестное цветовое имя.root["bg"]возвращает цвет фона виджета.Таким образом, если вы создаете окно с именем myWindow, не переопределяя цвет фона по умолчанию вашей системы, то
myWindow["bg"]- это цвет фона по умолчанию для окна, который можно использовать при создании бескаркасные текстовые поля в этом окне.