Codes de couleur Tkinter et hex de la fenêtre par défaut

j'aimerais connaître la couleur par défaut de la fenêtre dans Tkinter lorsque vous créez simplement une fenêtre:

root = Tk()

S'il y en a un, il est possible de régler les widgets à la même couleur ou d'utiliser un code de couleur hexadécimal? (en utilisant rgb)

le code de couleur que j'ai trouvé pour la fenêtre "normal" est:

R= 240, G= 240, B = 237

Merci.

6
demandé sur user2063 2012-07-05 12:44:47

3 réponses

vous ne savez Pas exactement ce que vous cherchez, mais ce travail?

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

si vous voulez juste trouver la valeur actuelle de la fenêtre, et définir des widgets pour l'utiliser, cget pourrait être ce que vous voulez:

import Tkinter

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

si vous voulez définir la couleur de fond par défaut pour les nouveaux widgets, vous pouvez utiliser la méthode tk_setPalette(self, *args, **kw) :

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

alors vos widgets auraient cette couleur de fond par défaut, sans avoir à le régler dans les paramètres du widget. Il ya beaucoup d'informations utiles fournies avec les fonctions d'aide en ligne import Tkinter; help(Tkinter.Tk)

29
répondu rudivonstaden 2012-07-05 11:33:58

la réponse de rudivonstaden m'a amené à une solution au problème, bien que pour une raison quelconque root.cget("bg") échoue parce que "bg" est un nom de couleur inconnu.

Toutefois, sachant qu'un widget est un dictionnaire contenant ses propriétés signifie que root["bg"] renvoie la couleur d'arrière-plan du widget.

donc si vous créez une fenêtre nommée myWindow sans passer par dessus la couleur de fond par défaut de votre système, alors myWindow["bg"] est la couleur par défaut couleur de fond pour une fenêtre, qui peut être utilisée lors de la création de champs de texte sans cadre dans cette fenêtre.

2
répondu Dave Cosmtock 2014-03-19 20:25:08

some_widget (bg=some_widget._racine.)(cget ('bg'))

-1
répondu user5425048 2015-10-10 20:04:49