如何将Qcolor值转换为十六进制值?

问题描述 投票:0回答:2

我实现了一个在特定条件下打开的 QColor 对话框。 为了在最终选择后获取选定的颜色,我使用方法

selectedColor()
返回 QColor 中的值。当我打印该值时,它是这样的:

<PyQt4.QtGui.QColor object at 0x01DD7880>

我想要十六进制值的颜色值,如下所示:

#DFDFDF
(表示灰色)。如果不是十六进制,请纠正我。

有什么函数可以转换吗?

欢迎任何建议。

qt pyqt hex
2个回答
51
投票

您需要打印

selectedColor().name()
以十六进制打印实际颜色值。请参阅QColor 文档


4
投票

稍微放大一下,也许会让人困惑,也许会澄清……(对于Python新手)

color = QColorDialog.getColor(pWidget.textBackgroundColor(), pWidget, 'Get Text Highlighting Color')

对于我们这些不想被“蓝色”、“红色”、绿色等命名颜色困扰的人来说,上面将使用

QColor
返回一个
QColorDialog

fg = color.name()

在本例中,我将

QColor
转换为十六进制字符串以在样式表中使用。

Widget.setStyleSheet('background-color: ' + bg + ';color: ' + fg)

这就是在样式表中使用此类转换值的方式。

注意如何连接多个样式表属性。另外,请注意,有时更改一个属性会取消之前对其他属性的更改。

© www.soinside.com 2019 - 2024. All rights reserved.