gpt4 book ai didi

python - 如何在 PyQt 中获取命名颜色?

转载 作者:行者123 更新时间:2023-12-01 02:33:26 24 4
gpt4 key购买 nike

PyQt 有一个完整的类 (QtGui.QColor) 用于处理多种格式的颜色。此类包含一个 setNamedColor() 方法,该方法接收 SVG color keyword names 定义的命名颜色。由万维网联盟提供并返回 RGB 值形式的颜色。

因此,给定(伪)代码:

my_color = QtGui.QColor()
my_color.setNamedColor("red")

一个人会得到类似“#0000ff”的内容

但我想要的恰恰相反:一个“getNamedColor()”函数,给定有效的 RGB 值,该函数将根据上述 SVG 颜色关键字名称返回颜色名称

一个令人满意的解决方案是在这样一个方便的函数中使用 Matplotlib 颜色表(参见 here ):

import matplotlib.colors as colors
def get_named_color(hex):
return colors.cnames.keys()[colors.cnames.values().index(hex)]

但让事情变得困难的是,QColor()生成的十六进制代码似乎与Matplotlib颜色字典中的十六进制代码不兼容!

有没有办法解决这个问题?

最佳答案

事实证明,我的问题的答案非常简单(尽管不是很明显):

QColor() 十六进制代码如下:“#0000ff”,而在 Matplotlib 颜色字典中,所有代码均为大写:“#0000FF”。

因此,将上面的小函数修改为:

import matplotlib.colors as colors
def get_named_color(hex):
return colors.cnames.keys()[colors.cnames.values().index(hex.upper())]

效果很好。

关于python - 如何在 PyQt 中获取命名颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com