一、新建QT GUI, 基类选择QWidget,取消“建立界面”this
二、在widget.h中添加#include <QPainter>和重写绘画事件定义:
* protected:
void paintEvent(QPaintEvent *event);
三、在widget.cpp中添加剧绘事件void Widget::paintEvent(QPaintEvent *event)3d
四、线性渐变QLinearGradientcode
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QLinearGradient ling(QPointF(70, 70), QPoint( 140, 140 ) ); //从起点到终点的渐变 ling.setColorAt(0, Qt::blue); //起点到中心要显示的颜色 ling.setColorAt(1, Qt::green); ling.setSpread( QGradient::PadSpread ); //默认显示模式 QBrush brush(ling); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QLinearGradient ling(QPointF(70, 70), QPoint( 140, 140 ) ); //从起点到终点的渐变 ling.setColorAt(0, Qt::blue); //起点到中心要显示的颜色 ling.setColorAt(1, Qt::green); ling.setSpread( QGradient::RepeatSpread ); //默认显示模式 QBrush brush(ling); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QLinearGradient ling(QPointF(70, 70), QPoint( 140, 140 ) ); //从起点到终点的渐变 ling.setColorAt(0, Qt::blue); //起点到中心要显示的颜色 ling.setColorAt(1, Qt::green); ling.setSpread( QGradient::ReflectSpread ); //默认显示模式 QBrush brush(ling); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
五、圆心渐变QRadialGradientblog
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QRadialGradient radg(100, 100, 50, 120, 120); //在圆心(100, 100),半径50的圆上渐变。渐变起点是(120, 120) radg.setColorAt( 0, Qt::black ); radg.setColorAt( 1, Qt::white ); //radg.setSpread(QGradient::PadSpread); //默认 QBrush brush(radg); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QRadialGradient radg(100, 100, 50, 120, 120); //在圆心(100, 100),半径50的圆上渐变。渐变起点是(120, 120) radg.setColorAt( 0, Qt::black ); radg.setColorAt( 1, Qt::white ); radg.setSpread(QGradient::RepeatSpread); QBrush brush(radg); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QRadialGradient radg(100, 100, 50, 120, 120); //在圆心(100, 100),半径50的圆上渐变。渐变起点是(120, 120) radg.setColorAt( 0, Qt::black ); radg.setColorAt( 1, Qt::white ); radg.setSpread(QGradient::ReflectSpread); QBrush brush(radg); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }
六、坐标角度渐变QConicalGradient事件
void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); QConicalGradient cong( 100, 100, 45.0 ); //在(100, 100)坐标上以45°为中心渐变 cong.setColorAt( 0, Qt::black ); cong.setColorAt( 1, Qt::white ); QBrush brush(cong); painter.setBrush(brush); painter.drawRect(0, 0, 200, 200); painter.end(); }