Как конвертировать значение Qcolor в шестнадцатеричное значение? - PullRequest
15 голосов
/ 06 января 2011

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

<PyQt4.QtGui.QColor object at 0x01DD7880>

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

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

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

Ответы [ 2 ]

27 голосов
/ 07 января 2011

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

1 голос
/ 14 декабря 2014

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

color = QColorDialog.getColor (pWidget.textBackgroundColor (), pWidget, 'Получить цвет выделения текста')

Вышеприведенное вернет QColor, используя QColorDialog, для тех из нас, кто не хочет застрять с именованными цветами, такими как 'Синий', 'Красный', Зеленый и т. Д.

fg = color.name ()

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...