QBrush

一、画刷样式

一图流:

二、成员函数

1、QBrush(const QGradient &gradient)

用渐变构造画刷。

void Widget::paintEvent(QPaintEvent *event)
{
    auto rect = event->rect();
    QPainter painter(this);
    painter.setBrush(QGradient(QGradient::NewYork));
    painter.drawRect(rect);
}

2、QBrush(const QPixmap &pixmap)

     QBrush(const QImage &image)

用纹理图案构造画刷,画刷风格设为Qt::TexturePattern。

    painter.setBrush(QImage(":/D:/xx.jpeg"));
    painter.drawRect(rect);

3、QBrush(Qt::GlobalColor color, const QPixmap &pixmap)

     QBrush(const QColor &color, const QPixmap &pixmap)

颜色仅对二值图有效(QBitmap继承自QPixmap)。

    painter.setBrush(QBrush(Qt::red,QPixmap(":/D:/qqq.jpeg")));
    painter.drawRect(rect);

    painter.setBrush(QBrush(Qt::red,QBitmap(":/D:/qqq.jpeg")));
    painter.drawRect(rect);

4、QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)

     QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern)

使用一个颜色和一个画刷样式构造画刷。画刷样式不包括渐变和纹理图案。

    painter.setBrush(QBrush(Qt::red,Qt::HorPattern));
    painter.drawRect(rect);

5、QBrush(Qt::BrushStyle style)

使用画刷样式构造画刷。

6、QBrush()

构造一个默认的黑色画刷,样式是Qt::NoBrush(不填充图形)。

7、void setColor(const QColor &color) / void setColor(Qt::GlobalColor color)

设置画刷颜色。如果样式是渐变类型那不会起作用,如果样式是Qt::TexturePattern但纹理图案不是二值图也不会起作用。

8、const QColor &color()

获取颜色。

9、const QGradient *gradient()

获取画刷的渐变(如果是渐变类型的话)。

10、bool isOpaque()

判断画刷是否透明。如果出现以下情况,则认为画刷不透明:

  • color()的alpha值是255。
  • 它的texture()没有alpha通道,也不是QBitmap。
  • gradient()中的颜色都有一个255的alpha分量。
  • 渐变是辐射渐变类型。

11、void setStyle(Qt::BrushStyle style) / Qt::BrushStyle QBrush::style()

设置/返回画刷样式。

12、void setTexture(const QPixmap &pixmap)

设置画刷纹理图案。样式设置为Qt::TexturePattern。当前的笔刷颜色仅对二值图有效。

13、QPixmap texture()

返回画刷纹理图案,未设置则返回空图像。

14、void setTextureImage(const QImage &image)

用QImage设置画刷纹理图案。样式设置为Qt::TexturePattern。画刷颜色对它不会有影响。

    QBrush brush;
    brush.setColor(Qt::red);
    brush.setTextureImage(QImage(":/D:/qqq.jpeg"));
    painter.setBrush(brush);
    painter.drawRect(rect);

如果要使画刷颜色对QImage设置的纹理图案有影响,可以设置:

    QBrush brush;
    brush.setColor(Qt::red);
    brush.setTexture(QBitmap::fromImage(QImage(":/D:/qqq.jpeg")));
    painter.setBrush(brush);
    painter.drawRect(rect);

15、QImage textureImage()

返回自定义画刷纹理图案,如果未设置自定义画刷纹理图案,则返回空图像。如果纹理图案是用QPixmap设置的,它将被转换为QImage。

16、QTransform transform() const / void setTransform(const QTransform &matrix)

返回 / 设置笔刷的当前变换矩阵。

    QTransform tf;
    tf.scale(0.5,0.5);
    brush.setTransform(tf);

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`QBrush` 和 `QPen` 是 PyQt5 中用于设置界面元素填充色和描边色的类。 下面是一个使用 `QBrush` 和 `QPen` 的例子,用于绘制一个矩形和一个椭圆: ```python from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor, QPen, QBrush from PyQt5.QtWidgets import QApplication, QGraphicsScene, QGraphicsView, QGraphicsEllipseItem, QGraphicsRectItem, QGraphicsItem # 创建应用程序对象 app = QApplication([]) # 创建场景对象 scene = QGraphicsScene() # 创建矩形对象 rect_item = QGraphicsRectItem(0, 0, 100, 100) rect_item.setBrush(QBrush(QColor(255, 0, 0))) rect_item.setPen(QPen(QColor(0, 0, 255), 5, Qt.SolidLine, Qt.FlatCap, Qt.MiterJoin)) scene.addItem(rect_item) # 创建椭圆对象 ellipse_item = QGraphicsEllipseItem(100, 100, 100, 50) ellipse_item.setBrush(QBrush(QColor(0, 255, 0))) ellipse_item.setPen(QPen(Qt.NoPen)) scene.addItem(ellipse_item) # 创建视图对象 view = QGraphicsView(scene) view.show() # 运行应用程序 app.exec_() ``` 在上述代码中,我们创建了一个场景对象,然后创建了一个矩形对象和一个椭圆对象,分别使用 `setBrush()` 方法和 `setPen()` 方法设置它们的填充色和描边色。其中,矩形对象的描边颜色为蓝色,线条宽度为 5,线条样式为实线,线条端点为平头,线条连接点为斜接头。椭圆对象没有描边,填充色为绿色。 最后,我们创建了一个视图对象,将场景对象设置为视图的场景,并显示视图。 除了上述例子中的设置填充色和描边色,`QBrush` 和 `QPen` 还可以设置渐变色、图案、线条样式等。在实际的应用中,我们可以根据需要选择合适的属性和方法来设置界面元素的样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值