В моей программе PyQt4 я получаю QColor от пользователя через QColorDialog.
я тогда нужно отформатировать этот QColor для использования в таблицы стилей, которые я в настоящее время достичь по телефону ...Qt - Формат QColor для использования в листе стилей?
QColor.name()
... который возвращает что-то вроде «# 00ff00», которые затем претерпевают простую строку манипуляция должна быть установлена как таблица стилей для виджета. например:
QWidget.setStyleSheet('* { background-color: '+ QColor.name() + ' }')
Позже в программе, цвет фона виджета должен быть извлечен (с использованием .stylesheet() и более простых манипуляций со строками) и преобразуется в строку, которая при Eval() ред бы построить QColor идентичного цвета.
Он должен быть преобразован в QColor, поскольку он позже используется в QBrush. QColor необходимо преобразовать в строку одной строки, потому что она записана в файл и импортируется из указанного файла через eval().
(Строка, когда eval() ed должен передать цвет конструктору QColor, так как строка - только одна строка).
В конце концов, мне нужно что-то похож (хотя и не возможно в этой манере), как это:
ColorString = str(QtGui.QColorDialog.getColor().name())
EvalString = "QtGui.QColor(" + ColorString +")"
Ofcourse, этот метод не работает, так как конструктор QColor не принимает такой формат, как " # 00ff00 ', который является форматом, который предоставляет QColorDialog.name() и который принимает QWidget.setStyleSheet().
Как я могу это достичь?
Есть ли способ конвертировать строку типа '# 00ff00' в 3 целых числа, представляющих красный, зеленый и синий цвета, которые затем можно отправить в конструктор QColor?
Спасибо!
Примечание:
Я понимаю, что такой формат «# 00ff00» действительно вовлекает представление этих трех цветов, но я не понимаю, что «ТФ» означает, и призвание .red() на QColor не верните целое число, которое предлагается в формате '# 00ff00'.
Это, вероятно, очевидно, что я не понимаю цвета :)
Характеристики:
- PyQt4
- Python 2.7
- Windows 7
спасибо, поправки –