获取当前tk调色板的颜色代码

2024-05-19 02:24:25 发布

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

在tkinter中,是否可以获得当前使用调色板的颜色,以便我可以使用它们,例如在画布上绘制矩形时

import tkinter as tk
root = tk.Tk()
root.tk_bisque() # change the palette to bisque
canvas = tk.Canvas(root, width=500, height=500)
canvas.create_rectangle(10, 10, 100, 100, fill='???') # What to enter here?

我知道我可以使用例如“bisque”作为颜色名称,但是documentation提到的数据库包含诸如“activeBackground”、“highlightColor”等条目。我想知道如何将它们用作画布项目的颜色,或者简单地知道如何在运行时获取它们的rgb值


Tags: toimport颜色tkinteras画布绘制root
1条回答
网友
1楼 · 发布于 2024-05-19 02:24:25

您可以使用root.option_get(name, '.')获取小部件的默认颜色:

import tkinter as tk
root = tk.Tk()
root.tk_bisque() # change the palette to bisque
print(root.option_get('background', '.'))
print(root.option_get('activeBackground', '.'))
print(root.option_get('foreground', '.'))
print(root.option_get('highlightColor', '.'))

给予

#ffe4c4
#e6ceb1
black
black

如果需要特定小部件类的颜色,请将'.'替换为类名。如注释中所述,如果需要颜色的RGB值,可以使用root.winfo_rgb(color),其中color为十六进制格式或tkinter预定义颜色之一,如黑色。。。(例如,您可以找到一个列表here

但是,在我的计算机上(我使用的是Linux,我不知道在所有平台上的行为是否相同),它只有在将配色方案设置为bisque后才能工作,对于默认配色方案,它总是返回''

相关问题 更多 >

    热门问题