Qt画笔与画刷

Qt绘图系统介绍

Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类.

QPainter用来执行绘图操作; QPaintDevice提供绘图设备,它是一个二维空间的抽象,可以使用QPainter在其上进行绘制; QPaintEngine提供了一些接口,可以用于QPainter在不同的设备上进行绘制。

在Qt绘图系统中,由QPainter来完成具体的绘制操作。QPainter一般在一个部件的重绘事件(Paint Event)的处理函数paintEvent()中进行绘制:

首先要创建QPainter对象;然后进行图形的绘制;最后销毁QPainter对象。

QPainter使用方式

1.QPainter构造函数中,parent指定绘图对象(设备);QPainter构造函数中自动调用begin函数,表明绘图开始,在QPainter的析构函数中调用end()函数结束绘制。

    QRectF rectangle(10.0, 20.0, 80.0, 60.0);
    int startAngle = 30 * 16;
    int spanAngle = 120 * 16;
    QPainter painter(this);
    painter.drawArc(rectangle, startAngle, spanAngle);

2.构造时,不在构造函数中指定parent(绘图对象);显示调用begin(parent)指定绘图设备。

绘图结束时,显示调用end()函数。

    QRectF rectangle(10.0, 20.0, 80.0, 60.0);
    int startAngle = 30 * 16;
    int spanAngle = 120 * 16;
    QPainter painter;
    painter.begin(this); //指定设备
    painter.drawArc(rectangle, startAngle, spanAngle);
    painter.end();

画笔与画刷

画笔指定图案的轮廓的样式

画刷指定图案的填充样式

画笔使用

    //使用画笔,设置画笔的风格
    QPen pen(Qt::red,6, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin);
    painter.setPen(pen);
    painter.drawArc(rectangle, startAngle, spanAngle);

画刷使用

    // 创建画刷,设置画刷的风格
    QBrush brush(QColor(0, 0, 255), Qt::Dense4Pattern);
    // 使用画刷
    painter.setBrush(brush);
    // 绘制椭圆
    painter.drawEllipse(220, 20, 50, 50);

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值