Default window colour Tkinter and hex colour codes

user2063 picture user2063 · Jul 5, 2012 · Viewed 76.5k times · Source

I would like to know the default window colour in Tkinter when you simply create a window:

root = Tk()

If there is one, it is possible to set widgets to the same colour or use a hex colour code? (using rgb)

The colour code I have found for the 'normal' window is:

R = 240, G = 240, B = 237

Thanks.

Answer

rudivonstaden picture rudivonstaden · Jul 5, 2012

Not sure exactly what you're looking for, but will this work?

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()

If you just want to find the current value of the window, and set widgets to use it, cget might be what you want:

import Tkinter

root = Tkinter.Tk()
defaultbg = root.cget('bg')
Tkinter.Button(root,text="Press me!", bg=defaultbg).pack()
root.mainloop()

If you want to set the default background color for new widgets, you can use the tk_setPalette(self, *args, **kw) method:

root.tk_setPalette(background='#40E0D0', foreground='black',
               activeBackground='black', activeForeground=mycolor2)
Tkinter.Button(root, text="Press me!").pack()

Then your widgets would have this background color by default, without having to set it in the widget parameters. There's a lot of useful information provided with the inline help functions import Tkinter; help(Tkinter.Tk)