我是靠谱客的博主 无限宝马,最近开发中收集的这篇文章主要介绍QColor的使用整数 vs浮点精度欢迎加入QQ群:853840665,一块学习分享资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    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,一块学习分享资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部