QBrush绘制图案不同风格展示

Qt下画刷的不同样式一共有19种,如下所示:

 1 enum BrushStyle { // brush style
 2         NoBrush,
 3         SolidPattern,
 4         Dense1Pattern,
 5         Dense2Pattern,
 6         Dense3Pattern,
 7         Dense4Pattern,
 8         Dense5Pattern,
 9         Dense6Pattern,
10         Dense7Pattern,
11         HorPattern,
12         VerPattern,
13         CrossPattern,
14         BDiagPattern,
15         FDiagPattern,
16         DiagCrossPattern,
17         LinearGradientPattern,
18         RadialGradientPattern,
19         ConicalGradientPattern,
20         TexturePattern = 24
21     };

19种画刷格式绘制图案如下所示

 

 1 void Widget::paintEvent(QPaintEvent *event)
 2 {
 3     Q_UNUSED(event);
 4 
 5     QPainter painter(this);
 6 
 7     painter.fillRect(this->rect(),QBrush(QColor(255,255,255)));
 8     painter.setRenderHint(QPainter::Antialiasing);//抗锯齿
 9 
10     QVector<Qt::BrushStyle> bsVector;
11 
12     bsVector<<Qt::BrushStyle::NoBrush<<Qt::BrushStyle::HorPattern<<Qt::BrushStyle::VerPattern<<
13         Qt::BrushStyle::BDiagPattern<<Qt::BrushStyle::CrossPattern<<Qt::BrushStyle::FDiagPattern<<
14         Qt::BrushStyle::SolidPattern<<Qt::BrushStyle::Dense1Pattern<<Qt::BrushStyle::Dense2Pattern<<
15         Qt::BrushStyle::Dense3Pattern<<Qt::BrushStyle::Dense4Pattern<<Qt::BrushStyle::Dense5Pattern<<
16         Qt::BrushStyle::Dense6Pattern<<Qt::BrushStyle::Dense7Pattern<<Qt::BrushStyle::TexturePattern<<
17         Qt::BrushStyle::DiagCrossPattern<<Qt::BrushStyle::LinearGradientPattern<<Qt::BrushStyle::RadialGradientPattern<<
18         Qt::BrushStyle::ConicalGradientPattern;
19 
20     for (int i=0;i<19;i++) {
21         painter.setBrush(QBrush(QColor(255,0,0),bsVector[i]));
22         painter.drawEllipse(i*60+10,10,50,50);
23     }
24 }

 

image

posted @ 2026-01-21 16:57  左边的翼  阅读(2)  评论(0)    收藏  举报