概述
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 sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtWidgets import QWidget, QApplication, QTextEdit, QMainWindow, QColorDialog
class 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,一块学习分享资料
最后
以上就是无限宝马为你收集整理的QColor的使用整数 vs浮点精度欢迎加入QQ群:853840665,一块学习分享资料的全部内容,希望文章能够帮你解决QColor的使用整数 vs浮点精度欢迎加入QQ群:853840665,一块学习分享资料所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复