默认窗口颜色Tkinter和十六进制颜色代码

2024-05-16 21:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

当您只需创建一个窗口时,我想知道Tkinter中的默认窗口颜色:

root = Tk()

如果有,可以将小部件设置为相同的颜色或使用十六进制颜色代码?(使用rgb)

我找到的“普通”窗口的颜色代码是:

R=240,G=240,B=237

谢谢。


Tags: 颜色部件tkinterrgbroottk颜色代码
3条回答

我试图将按钮的颜色设置为系统默认值。这是我遇到的最好的解决方案:

root.configure(background='SystemButtonFace')

资料来源: https://stackoverflow.com/a/53460702/10346152

不知道你到底在找什么,但这行吗?

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)

rudivonstaden的回答让我找到了解决问题的方法,尽管由于某种原因,root.cget("bg")失败了,因为"bg"是一个未知的颜色名。

但是,知道小部件有包含其属性的字典意味着root["bg"]返回小部件的背景色。

因此,如果在不覆盖系统默认背景色的情况下创建名为myWindow的窗口,那么myWindow["bg"]是窗口的默认背景色,可以在该窗口中创建无框架文本字段时使用。

相关问题 更多 >