【问题标题】:get rgb values from tkinter color names从 tkinter 颜色名称中获取 rgb 值
【发布时间】:2021-05-06 10:34:51
【问题描述】:

我需要在每个 tkinter“颜色名称”和“颜色值(在 rgb 中,例如)”之间进行映射。 它可以是一一对应的列表,也可以是转换它们的函数。

有像 matplotlib 的 hex2color 或 to_rgba 这样的函数,但它们不支持所有的 tkinter 颜色名称,因为其中一些对模块来说太特殊了(比如“ghost white”);我想知道当然必须有一个特定于 tkinter 本身,因为它的开发人员需要它来实现该模块。

【问题讨论】:

  • 备案:如果你只是想知道一种颜色的RGB,你可以在tcl docs中查找。你可以把它做成一个 python 字典,并有一个查找它的函数。
  • 哇,谢谢。这正是我所需要的。顺便说一句,这是一种巧妙地导出它的方法,以便我可以将它交给 Python。现在我复制并粘贴了它,必须编写一个小代码来使它干净,然后给它 Python...
  • 我只是将它复制并粘贴到python中并将其转换为字典。将其从字符串转换为 dict 只是字符串操作

标签: python tkinter rgb color-mapping


【解决方案1】:

使用winfo_rgb 方法。如果您将其传递为黄色,它将返回 rgb 值(16 位),然后您可以将其除以 256 以获得大约 8 位的值。

root.winfo_rgb('yellow')

返回 (65535, 65535, 0)

root.winfo_rgb('ghostwhite')

返回 (63736, 63736, 65535)

将 8 位 RGB 值作为元组获取的 oneliner 是

rgb = tuple((c//256 for c in root.winfo_rgb('ghostwhite')))

【讨论】:

    猜你喜欢
    • 2011-11-27
    • 2013-12-02
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2012-03-02
    • 2018-12-23
    • 1970-01-01
    相关资源
    最近更新 更多