Qt之QtPainter:設置畫刷[Qt5開發實戰]

/*
 * 一、新建QT GUI, 基類選擇QWidget,取消「建立界面」
 * 二、添加資源文件qtlogn:在項目之下添加一個「resources」文件,裏面存放"qtblog.png",而後
 * 文件-->新建文件/項目--->Qt---> Qt Resource File
 * 三、在widget.h中添加#include <QPainter>和重寫繪畫事件定義:
 * protected:
    void paintEvent(QPaintEvent *event);
 * 四、在widget.cpp中添加劇繪事件this

*/3d

一、QRadialGradientcode

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

二、設置畫刷爲pixmap文件orm

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

三、設置畫刷的填充顏色blog

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

資源文件事件

qtblog.png

相關文章
相關標籤/搜索