QColor的使用
??? QColor類提供基于RGB、HSV或CMYK值的顏色。顏色通常用RGB(紅色、綠色和藍色)組件指定,但也可以用HSV(色相、飽和度和值)和CMYK(青色、品紅、黃色和黑色)組件指定。此外,可以使用顏色名稱指定顏色。顏色名稱可以是SVG 1.0的任何顏色名稱。
??? QColor構造函數基于RGB值創建顏色。要基于HSV或CMYK值創建QColor,分別使用toHsv()和toCmyk()函數。這些函數使用所需的格式返回顏色的副本。此外,靜態fromRgb()、fromHsv()和fromCmyk()函數從指定的值創建顏色。或者,可以使用convertTo()函數(以所需格式返回顏色的副本)或任何更改顏色格式的setRgb()、setHsv()和setCmyk()函數將顏色轉換為三種格式中的任何一種。函數的作用是:指定顏色。
??? 可以通過將RGB字符串(如“#112233”)、ARGB字符串(如“#ff112233”)或顏色名稱(如“blue”)傳遞給setNamedColor()函數來設置顏色。顏色名稱取自SVG 1.0顏色名稱。函數的作用是:返回顏色的名稱。顏色也可以使用setRgb()、setHsv()和setCmyk()來設置。要獲得較淺或較深的顏色,分別使用較淺()和較深()函數。
通過顏色名稱設置的例子:(名稱必須是Predefined Colors里面的)
background_color = QColor() background_color.setNamedColor('blue')?? 設置藍色還可以通過(括號里面的整數值啥意思,飽和度亮度?哪位能告知)
background_color = QColor() background_color.setBlue(100)??? isValid()函數表示QColor是否合法。例如,RGB顏色的RGB值超出范圍是非法的。由于性能原因,QColor基本上不考慮非法顏色,因此,使用無效顏色的結果是無法定義的。
??? 顏色組件可以單獨檢索,例如。用紅色(),色調()和青色()。還可以使用getRgb()、getHsv()和getCmyk()函數一次性檢索顏色組件的值。使用RGB顏色模型,還可以使用RGB()訪問顏色組件。
??? 有幾個相關的非成員:QRgb是一個類型定義,用于表示RGB值三元組的無符號int (r, g, b)。qRed()、qBlue()和qGreen()函數返回給定的QRgb值的各個組件,而QRgb()和qRgba()函數根據給定的組件值創建并返回QRgb三元組。最后,qAlpha()函數返回提供的QRgb的alpha組件,qGray()函數根據給定的值計算并返回一個灰色值。
QColor是平臺和設備獨立的。QColormap類將顏色映射到硬件。
整數 vs浮點精度
??? QColor支持浮點精度,提供所有顏色組件函數的浮點版本,例如getRgbF()、hueF()和fromCmykF()。注意,由于組件是使用16位整數存儲的,因此使用setRgbF()和getRgbF()函數返回的值之間可能存在微小的偏差。
??? 雖然基于整數的函數取值范圍為0-255 (hue()除外,其值必須在0-359范圍內),但浮點函數接受范圍為0.0 - 1.0的值。
下面貼一個顯示藍底紅字的例子
import sysfrom PyQt5.QtCore import Qt from PyQt5.QtGui import QColor, QPalette from PyQt5.QtWidgets import QWidget, QApplication, QTextEdit, QMainWindow, QColorDialogclass Example1(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):background_color = QColor()background_color.setNamedColor('blue')#self_color = QColorDialog.getColor()self.text_editor = QTextEdit()color_palette = self.text_editor.palette()color_palette.setColor(QPalette.Text, Qt.red)color_palette.setColor(QPalette.Base, background_color)#color_palette.setColor(QPalette.Base, self_color)self.text_editor.setPalette(color_palette)default_font = self.text_editor.font()default_font.setPointSize(9)self.text_editor.setFont(default_font)self.setWindowTitle('Example')self.setCentralWidget(self.text_editor)self.setGeometry(500, 500, 500, 500)self.show()if __name__ == '__main__':app = QApplication(sys.argv)example = Example1()sys.exit(app.exec_())效果如下:
歡迎加入QQ群:853840665,一塊學習分享資料
總結
- 上一篇: 3D模型体素化(Voxelization
- 下一篇: 水库大坝安全监测具体内容