Qt之QtPainter:设置画刷[Qt5开发实战]

/*
 * 1、新建QT GUI, 基类选择QWidget,取消“创建界面”
 * 2、添加资源文件qtlogn:在项目之下添加一个“resources”文件,里面存放"qtblog.png",然后
 * 文件-->新建文件/项目--->Qt---> Qt Resource File
 * 3、在widget.h中添加#include <QPainter>和重写绘画事件定义:
 * protected:
    void paintEvent(QPaintEvent *event);
 * 4、在widget.cpp中添加重绘事件

*/

1、QRadialGradient

void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter;
    painter.begin(this);

    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);

    painter.setBrush(brush);
    painter.drawRect(0, 0, 100, 100);

    painter.end();
}

28d292d63f92ef5b677b4d52b9c921e3338.jpg

2、设置画刷为pixmap文件

void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter;
    painter.begin(this);

    QPixmap pixmap("F:\\MyCode\\brush\\resources\\qtblog.png");
    int w = pixmap.width();
    int h = pixmap.height();
    pixmap.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);

    QBrush brush(pixmap);   //设置画刷为pixmap文件:也就是用pixmap图形填充矩形
    painter.setBrush(brush);
    painter.drawRect(0, 0, w, h);
    painter.end();
}

e980d0b68014109335683d54162e1539ab0.jpg

3、设置画刷的填充颜色

void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter;
    painter.begin(this);
    painter.setPen(Qt::blue);
    painter.setBrush(QBrush(Qt::green, Qt::Dense3Pattern));
    painter.drawEllipse(10, 10, 100,100);
    painter.setBrush(Qt::NoBrush);
    painter.drawEllipse(80, 10, 100, 100);
    painter.end();
}

a13d0b144765b9f1306cf39e7bd11fe9049.jpg

资源文件

qtblog.png

 

转载于:https://my.oschina.net/u/3919756/blog/1942428

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值