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

2024-09-29 17:11:22 发布

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

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

因此,考虑到(伪)代码:

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

你会得到“0000ff”之类的信息

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

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

^{pr2}$

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

有什么解决办法吗?在


Tags: 方法函数代码svg名称matplotlib颜色my
1条回答
网友
1楼 · 发布于 2024-09-29 17:11:22

结果我的问题的答案很简单(虽然不是很明显):

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

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

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

它工作得很好。在

相关问题 更多 >

    热门问题