web-dev-qa-db-fra.com

Couleur de fenêtre par défaut Tkinter et codes de couleur hexadécimaux

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

root = Tk()

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

Le code couleur que j'ai trouvé pour la fenêtre "normale" est:

R = 240, G = 240, B = 237

Merci.

11
user2063

Vous ne savez pas exactement ce que vous cherchez, mais cela fonctionnera-t-il?

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 simplement 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 souhaitez définir la couleur d'arrière-plan 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()

Vos widgets auraient alors cette couleur d'arrière-plan par défaut, sans avoir à la définir dans les paramètres du widget. Il y a beaucoup d'informations utiles fournies avec les fonctions d'aide en ligne import Tkinter; help(Tkinter.Tk)

36
rudivonstaden

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

Cependant, sachant qu'un widget a 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 remplacer la couleur d'arrière-plan par défaut de votre système, alors myWindow["bg"] est la couleur d'arrière-plan par défaut d'une fenêtre, qui peut être utilisée lors de la création de champs de texte sans cadre dans cette fenêtre.

2
Dave Cosmtock

J'essayais de définir la couleur d'un bouton sur la valeur par défaut du système. C'est la meilleure solution que j'ai rencontrée:

root.configure(background='SystemButtonFace')

Source: https://stackoverflow.com/a/53460702/10346152

1
SKS

La couleur par défaut pour la fenêtre Tkinter que j'ai trouvée était # F0F0F0

0
Alex Efron