当前位置 博文首页 > Allen Roson:QT QBrush

    Allen Roson:QT QBrush

    作者:[db:作者] 时间:2021-06-22 21:12

    QBrush类定义QPaint绘制的形状的填充图案。


    笔刷有样式、颜色、渐变和纹理。


    brush style() 使用Qt::BrushStyle枚举定义填充图案。默认笔刷样式是Qt::NoBrush(取决于构造笔刷的方式)。这种风格告诉画家不要填充形状。填充的标准样式是Qt::SolidPattern。使用适当的构造函数创建画笔时可以设置样式,此外,setStyle()函数提供了在构造画笔后更改样式的方法。

    ?

    笔刷color() 定义填充图案的颜色。颜色可以是Qt的预定义颜色之一,Qt::GlobalColor,或者任何其他自定义QColor。可以分别使用color()和setColor()函数检索和更改当前设置的颜色。


    gradient() 定义当前样式为Qt::LinearGradintPattern、Qt::RadialGradientPattern或Qt::ConicCalGradientPattern时使用的渐变填充。渐变笔刷是通过在创建QBrush时将QGrade作为构造函数参数创建的。Qt提供三种不同的梯度:QLINeAgreent、QConicalGradient和QRadialGradient,所有这些梯度都继承QGradient。

    ?

        QRadialGradient gradient(50, 50, 50, 50, 50);
        gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1));
        gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));
    
        QBrush brush(gradient);
    

    ?

    texture()定义当前样式为Qt::TexturePattern时使用的像素映射。通过在创建笔刷时提供pixmap或使用setTexture()创建具有纹理的笔刷。
    请注意,不管以前的样式设置如何,应用setTexture()都会使style()==Qt::TexturePattern。另外,如果样式为渐变,则调用setColor()也不会产生任何影响。如果样式是Qt::TexturePattern样式,则情况也是如此,除非当前纹理是QBitmap。
    函数的作用是:如果笔刷完全不透明,则返回true,否则返回false。如果出现以下情况,则认为刷子不透明:
    color()的alpha分量是255。
    它的texture()没有alpha通道,也不是QBitmap。
    gradient()中的颜色都有一个255的alpha分量。

    ?

    ?

    有关一般绘制的详细信息,请参见绘制系统。
    另请参见Qt::BrushStyle、QPainter和QColor。

    下一篇:没有了