在我的PyQt4程序中,我通过QColorDialog从用户检索QColor。
然后我需要格式化该的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'确实涉及这三种颜色的表示,但我不明白'ff'是什么意思,并且对QColor调用.red()并不会返回'#00ff00'格式建议的整数。
这可能很明显,我不明白颜色:)
规格:
- PyQt4的
- Python的2。7
- Windows 7的
感谢,修正 – 2012-01-03 12:41:47