在我的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