Цвет окна по умолчанию 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"]
- это цвет фона по умолчанию для окна, который можно использовать при создании бескаркасные текстовые поля в этом окне.