获取当前 tk 调色板的颜色代码
Getting color codes of the current tk palette
在 tkinter 中,是否可以获取当前使用的调色板的颜色,以便我可以使用它们,例如在 canvas?
上绘制矩形时
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' 等条目的数据库。我想知道如何将这些用作我的 canvas 项目的颜色,或者只是如何在运行时获取它们的 rgb 值。
您可以使用 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
如果您需要特定小部件 class 的颜色,请将 '.'
替换为 class 名称。如评论中所述,如果您需要颜色的 RGB 值,则可以使用 root.winfo_rgb(color)
,其中 color
为 HEX 格式或 tkinter 预定义颜色之一,例如黑色,...(您可以找到一个列表 here 例如)。
但是,在我的电脑上(我使用的是 Linux,我不知道在所有平台上的行为是否相同)它只有在将配色方案设置为 bisque 后才能使用,默认颜色计划它总是 return ''
.
在 tkinter 中,是否可以获取当前使用的调色板的颜色,以便我可以使用它们,例如在 canvas?
上绘制矩形时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' 等条目的数据库。我想知道如何将这些用作我的 canvas 项目的颜色,或者只是如何在运行时获取它们的 rgb 值。
您可以使用 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
如果您需要特定小部件 class 的颜色,请将 '.'
替换为 class 名称。如评论中所述,如果您需要颜色的 RGB 值,则可以使用 root.winfo_rgb(color)
,其中 color
为 HEX 格式或 tkinter 预定义颜色之一,例如黑色,...(您可以找到一个列表 here 例如)。
但是,在我的电脑上(我使用的是 Linux,我不知道在所有平台上的行为是否相同)它只有在将配色方案设置为 bisque 后才能使用,默认颜色计划它总是 return ''
.