Qt_GUI_IM_4_7 - 8BitsCoding/RobotMentor GitHub Wiki

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;

    // QWidget interface
protected:
    void paintEvent(QPaintEvent *event) override;
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::paintEvent(QPaintEvent *event) {

    QPainter painter(this);

    QLinearGradient linearGradient(QPointF(70,20),QPointF(70,170));
    linearGradient.setColorAt(0,Qt::red);

    linearGradient.setColorAt(0.5,Qt::gray);

    linearGradient.setColorAt(1,Qt::yellow);

    linearGradient.setSpread(QGradient::ReflectSpread);

    QBrush mBrush(linearGradient);
    painter.setBrush(mBrush);
    painter.drawRect(20,20,100,300);
    painter.drawLine(QLineF(QPointF(70,20),QPointF(70,170)));


    /*
     *      Radial Gradient
     * */
    QRadialGradient radialGradient(QPointF(280,170),75);
    radialGradient.setColorAt(0,Qt::blue);
    radialGradient.setColorAt(1,Qt::yellow);

    radialGradient.setSpread(QGradient::RepeatSpread);

    QBrush mBrushRad(radialGradient);

    painter.setBrush(mBrushRad);
    painter.drawRect(130,20,300,300);


    /*
     *  Conical Gradient
     * */
    QConicalGradient conicalGradient(QPointF(600,170),90);//Center of the gradient and start angle.
    conicalGradient.setColorAt(0,Qt::blue);
    conicalGradient.setColorAt(1,Qt::yellow);


    painter.setBrush(QBrush(conicalGradient));
    painter.drawEllipse(450,20,300,300);

}
⚠️ **GitHub.com Fallback** ⚠️