Как преобразовать значение Qcolor в значение hex?

Я применил диалоговое окно QColor, которое открывается при определенных условиях. Чтобы получить выбранный цвет после окончательного выбора, я использую метод selectedColor(), который возвращает значение в QColor. Когда я печатаю это значение, он выглядит так:

<PyQt4.QtGui.QColor object at 0x01DD7880>

Я хочу, чтобы значение цвета в шестнадцатеричном значении выглядело следующим образом: #DFDFDF (для серого). Если это не шестую, исправьте меня.

Есть ли какая-нибудь функция для преобразования этого?

Любые предложения приветствуются.

Ответ 1

Вам нужно напечатать selectedColor().name(), чтобы напечатать фактическое значение цвета в шестнадцатеричном формате. См. Документация QColor

Ответ 2

Чтобы немного усилить, может быть, запутать, может быть, уточнить... (для новичков Python)

color = QColorDialog.getColor(pWidget.textBackgroundColor(), pWidget, "Получить текст, выделяющий цвет" )

Вышеприведённое предложение вернет QColor с помощью QColorDialog для тех из нас, кто не хочет застревать с именованными цветами, такими как "синий", "красный", зеленый и т.д.

fg = color.name()

В этом случае я преобразовываю QColor в строку HEX для использования в таблице стилей.

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

Вот как такое преобразованное значение может использоваться в таблице стилей.

Обратите внимание, как объединить более одного атрибута таблицы стилей. Кроме того, сторона примечания, иногда изменение одного атрибута отменяет предыдущие изменения для других.