QColor的使用
??? QColor類提供基于RGB、HSV或CMYK值的顏色。顏色通常用RGB(紅色、綠色和藍(lán)色)組件指定,但也可以用HSV(色相、飽和度和值)和CMYK(青色、品紅、黃色和黑色)組件指定。此外,可以使用顏色名稱指定顏色。顏色名稱可以是SVG 1.0的任何顏色名稱。
??? QColor構(gòu)造函數(shù)基于RGB值創(chuàng)建顏色。要基于HSV或CMYK值創(chuàng)建QColor,分別使用toHsv()和toCmyk()函數(shù)。這些函數(shù)使用所需的格式返回顏色的副本。此外,靜態(tài)fromRgb()、fromHsv()和fromCmyk()函數(shù)從指定的值創(chuàng)建顏色。或者,可以使用convertTo()函數(shù)(以所需格式返回顏色的副本)或任何更改顏色格式的setRgb()、setHsv()和setCmyk()函數(shù)將顏色轉(zhuǎn)換為三種格式中的任何一種。函數(shù)的作用是:指定顏色。
??? 可以通過(guò)將RGB字符串(如“#112233”)、ARGB字符串(如“#ff112233”)或顏色名稱(如“blue”)傳遞給setNamedColor()函數(shù)來(lái)設(shè)置顏色。顏色名稱取自SVG 1.0顏色名稱。函數(shù)的作用是:返回顏色的名稱。顏色也可以使用setRgb()、setHsv()和setCmyk()來(lái)設(shè)置。要獲得較淺或較深的顏色,分別使用較淺()和較深()函數(shù)。
通過(guò)顏色名稱設(shè)置的例子:(名稱必須是Predefined Colors里面的)
background_color = QColor() background_color.setNamedColor('blue')?? 設(shè)置藍(lán)色還可以通過(guò)(括號(hào)里面的整數(shù)值啥意思,飽和度亮度?哪位能告知)
background_color = QColor() background_color.setBlue(100)??? isValid()函數(shù)表示QColor是否合法。例如,RGB顏色的RGB值超出范圍是非法的。由于性能原因,QColor基本上不考慮非法顏色,因此,使用無(wú)效顏色的結(jié)果是無(wú)法定義的。
??? 顏色組件可以單獨(dú)檢索,例如。用紅色(),色調(diào)()和青色()。還可以使用getRgb()、getHsv()和getCmyk()函數(shù)一次性檢索顏色組件的值。使用RGB顏色模型,還可以使用RGB()訪問(wèn)顏色組件。
??? 有幾個(gè)相關(guān)的非成員:QRgb是一個(gè)類型定義,用于表示RGB值三元組的無(wú)符號(hào)int (r, g, b)。qRed()、qBlue()和qGreen()函數(shù)返回給定的QRgb值的各個(gè)組件,而QRgb()和qRgba()函數(shù)根據(jù)給定的組件值創(chuàng)建并返回QRgb三元組。最后,qAlpha()函數(shù)返回提供的QRgb的alpha組件,qGray()函數(shù)根據(jù)給定的值計(jì)算并返回一個(gè)灰色值。
QColor是平臺(tái)和設(shè)備獨(dú)立的。QColormap類將顏色映射到硬件。
整數(shù) vs浮點(diǎn)精度
??? QColor支持浮點(diǎn)精度,提供所有顏色組件函數(shù)的浮點(diǎn)版本,例如getRgbF()、hueF()和fromCmykF()。注意,由于組件是使用16位整數(shù)存儲(chǔ)的,因此使用setRgbF()和getRgbF()函數(shù)返回的值之間可能存在微小的偏差。
??? 雖然基于整數(shù)的函數(shù)取值范圍為0-255 (hue()除外,其值必須在0-359范圍內(nèi)),但浮點(diǎn)函數(shù)接受范圍為0.0 - 1.0的值。
下面貼一個(gè)顯示藍(lán)底紅字的例子
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,一塊學(xué)習(xí)分享資料
總結(jié)
- 上一篇: 3D模型体素化(Voxelization
- 下一篇: 水库大坝安全监测具体内容