【问题标题】:How to Convert Qcolor value to hex value?如何将 Qcolor 值转换为十六进制值?
【发布时间】:2011-06-04 19:33:54
【问题描述】:

我已经实现了一个在特定条件下打开的 QColor 对话框。为了在最终选择后获得选定的颜色,我使用了 selectedColor() 方法,它返回 QColor 中的值。当我打印该值时,它是这样的:

<PyQt4.QtGui.QColor object at 0x01DD7880>

我想要这样的十六进制颜色值:#DFDFDF(灰色)。如果不是十六进制,请纠正我。

有什么函数可以转换吗?

欢迎提出任何建议。

【问题讨论】:

    标签: qt pyqt hex


    【解决方案1】:

    您需要打印selectedColor().name() 以十六进制打印实际颜色值。见QColor Documentation

    【讨论】:

    • 非常感谢杰森。 (我没有深入阅读文档)
    • 这个答案不满足 alpha 选项。结果类似于#RRGGBB,但不是 alpha
    • 链接已断开
    • @ufukgun 这个可以(从 Qt 5.2 开始):doc.qt.io/qt-5/qcolor.html#name-1
    【解决方案2】:

    为了放大一点,也许会混淆,也许会澄清......(对于 Python 新手)

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

    上面将使用QColorDialog 返回一个QColor,对于我们这些不想被“蓝色”、“红色”、绿色等命名颜色卡住的人来说。

    fg = color.name()
    

    在这种情况下,我将 QColor 转换为字符串 HEX 以在样式表中使用。

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

    这就是如何在样式表中使用这种转换后的值。

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

    【讨论】:

    • 注意:如果属性(在本例中为 pWidget.testBackGroundColor)在小部件中不存在,QColorDialog.getColor 将失败。您可以使用任何其他现有小部件的颜色属性。
    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2020-11-15
    • 2017-04-24
    • 2023-01-16
    • 2011-03-04
    • 2012-12-10
    • 2012-07-23
    相关资源
    最近更新 更多