Qt:QtPainter设置画笔

逃离我推掉我的手 2022-10-24 11:46 378阅读 0赞
  1. #include <QPainter>
  2. #include <QFont>
  3. void MainWindow::paintEvent(QPaintEvent *)
  4. {
  5. QPainter painter;
  6. painter.begin(this);
  7. QPen pen(Qt::black);
  8. pen.setStyle(Qt::SolidLine);
  9. pen.setWidth(20);
  10. QPointF p1[3] = {
  11. QPointF(30.0, 80.0),QPointF(20.0, 40.0), QPointF(80.0, 60.0)
  12. };
  13. QPointF p2[3] = {
  14. QPointF(130.0, 80.0), QPointF(120.0, 40.0), QPointF(180.0, 60.0)
  15. };
  16. QPointF p3[3] = {
  17. QPointF(230.0, 80.0), QPointF(220.0, 40.0), QPointF(280.0, 60.0)
  18. };
  19. pen.setJoinStyle(Qt::MiterJoin);
  20. painter.setPen(pen);
  21. painter.drawPolyline(p1, 3);
  22. pen.setJoinStyle(Qt::BevelJoin);
  23. painter.setPen(pen);
  24. painter.drawPolyline(p2, 3);
  25. pen.setJoinStyle(Qt::RoundJoin);
  26. painter.setPen(pen);
  27. painter.drawPolyline(p3, 3);
  28. painter.end();
  29. }

8d2bc65ac0164a48a7b132bd3175d26e411.jpg

画笔的连接风格

  1. #include <QPainter>
  2. #include <QFont>
  3. void MainWindow::paintEvent(QPaintEvent *)
  4. {
  5. QPainter painter;
  6. painter.begin(this);
  7. QPen pen(Qt::black);
  8. pen.setStyle(Qt::SolidLine);
  9. pen.setWidth(20);
  10. pen.setCapStyle(Qt::FlatCap);
  11. painter.setPen(pen);
  12. painter.drawLine(30, 30, 200, 30);
  13. pen.setCapStyle(Qt::SquareCap);
  14. painter.setPen(pen);
  15. painter.drawLine(30, 70, 200, 70);
  16. pen.setCapStyle(Qt::RoundCap);
  17. painter.setPen(pen);
  18. painter.drawLine(30, 110, 200, 110);
  19. painter.end();
  20. }

6deff8ab4e913c5b4f28ff7f45ceb6f6b53.jpg

画笔的三种边角。

  1. void MainWindow::paintEvent(QPaintEvent *)
  2. {
  3. QPainter painter;
  4. painter.begin(this);
  5. QRect rect1(10.0, 20.0, 80.0, 50);
  6. QRect rect2(110.0, 20.0, 80.0, 50.0);
  7. QRect rect3(210.0, 20.0, 80.0, 50.0);
  8. QRect rect4(10.0, 100.0, 80.0, 50.0);
  9. QRect rect5(110.0, 100.0, 80.0, 50.0);
  10. QRect rect6(210.0, 100.0, 80.0, 50.0);
  11. QPen pen(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
  12. painter.setPen(pen);
  13. painter.drawEllipse(rect1); //画椭圆
  14. pen.setStyle(Qt::DashLine);
  15. painter.setPen(pen);
  16. painter.drawEllipse(rect2);
  17. pen.setStyle(Qt::DotLine);
  18. painter.setPen(pen);
  19. painter.drawEllipse(rect3);
  20. pen.setStyle(Qt::DashDotLine);
  21. painter.setPen(pen);
  22. painter.drawEllipse(rect4);
  23. pen.setStyle(Qt::DashDotDotLine);
  24. painter.setPen(pen);
  25. painter.drawEllipse(rect5);
  26. pen.setStyle(Qt::CustomDashLine);
  27. painter.setPen(pen);
  28. painter.drawEllipse(rect6);
  29. painter.end();
  30. }

045ea8dc64d0c145fadc0bde52fb70b238c.jpg

设置画笔的轮廓

--

发表评论

表情:
评论列表 (有 0 条评论,378人围观)

还没有评论,来说两句吧...

相关阅读