QT中的2D绘图的总结

来源:互联网 发布:编程电脑配置要求2017 编辑:程序博客网 时间:2024/05/17 08:20

因为QT属于现学现用,由于要用到QT 2D绘图,所以临时学习了一下,当然只是浅尝辄止,并没有对其进行深入的研究,只是能作为一个工具去使用去完成一定的任务,现在记录下来以便以后用到时可以快速的捡起。


QT中的2d 绘图,我们不得不提到一个QPainter类,该类包含了所有的简单图形的绘制方法,比如绘制矩形,椭圆,图片等等,使用非常简单,查看API即可。

在我的理解上QPainter就好比画画的人本身,他是画画这件事情的主体也是连接画布和画笔以及绘制动作的主要执行者,非常容易理解。当然还可以调整画画的原点(

painter.translate(230,223);),调整画画的坐标系(painter.rotate(angle);),当然有也可以通过QPainterPath来绘制一个路径。


另外还有QPen、QBrush等工具可以使用,这就好比你要使用什么样的绘画工具进行绘画,有笔,刷子等。当然工具本身仍然有很多可以选择的属性,比如颜色,粗细等。


另外就是画布了,在Qt 中可以充当画布的很多,QWidget等即可。


当然这是我的浅显理解了。


  1. QColor hourColor(127, 0, 127); // 画笔颜色

  2. QPainter painter(objWidget);//切记,要为其设置画布
  3. painter.setPen(Qt::NoPen);
  4. painter.setBrush(hourColor);
  5. painter.translate(width() / 2, height() / 2); // 画布坐标系统的移动(当前窗口的中心点位置)
  6. painter.scale(side / 200.0, side / 200.0);    // 设置缩放
  7. painter.rotate(30.0);    // 坐标系统,旋转 30 度
  8. painter.save();

  9. painter.drawLine(92, 0, 96, 0);

  1. // 常用函数(参考QPainter.h)
  2. void drawText()
  3. void fillRect()
  4. void drawPoint()
  5. void drawPoints(const QPoint *points, int pointCount);
  6. void drawLine(int x1, int y1, int x2, int y2);
  7. void drawLines(const QLineF *lines, int lineCount);
  8. void drawRect(int x1, int y1, int w, int h);
  9. void drawRects(const QRectF *rects, int rectCount);
  10. void drawEllipse(int x, int y, int w, int h);
  11. void drawPolyline(const QPointF *points, int pointCount);

  12. void drawText(const QPointF &p, const QString &s);
  13. void drawImage() // 可以绘制图片

  14. void eraseRect()

  15. void scale(qreal sx, qreal sy); // 设置缩放 
  16. void rotate(qreal a);// 设置旋转
  17. void setBackground(const QBrush &bg); // 设置背景颜色
  18. void setPen(const QColor &color); // 设置画笔




0 0
原创粉丝点击