在Qt界面编程中,通常会遇到使用Qt自带控件解决不了的问题,这时2D绘图给我们提供了专用的定制化的工具。
2D绘图离不开QPaintet,可以把QPainter想成一个画笔,开发人员拿着画笔理论上可以绘制任何你想要的图形。QPainter一般在一个部件(Widget)重绘事件(PaintEvent)的处理函数PaintEvent()中进行绘制,首先要创建QPainter对象(画笔),然后进行图形的绘制。
(1)drawArc(); //绘制弧形
(2)drawChord(); //绘制弦
(3)drawConvexPolygon(); //绘制凸多边形
(4)drawEllipse(); //绘制椭圆(PS:椭圆是先整个框,然后逼近)
(5)drawImage(); //绘制图像
(6)drawLine(); //绘制线
(7)drawLines(); //绘制多条线
(8)drawPath(); //绘制路径(PS:想咋画咋画,但是必须是直的)
(9)drawPicture(); // 按照QPainter指令绘画(PS:将加载的二进制文件绘制)
(10)drawPie(); //绘制扇形
(11)drawPixmap(); // 绘制图像
(12)drawPoint(); //绘制点
(13)drawPoints(); //绘制多个点
(14)drawPolygon(); //绘制多边形
(15)drawPolyline(); //绘制多条折线
(16)drawRect(); //绘制矩形
(17)drawRects() ; //绘制多个矩形
(18)drawRoundRcet(); //绘制圆角矩形
(19)drawText(); //绘制文字
(20)drawTilcdPixmap(); //绘制平铺图像
(21)drawLineSegments(); //绘制折线
QPen类定义了QPainter如何绘制线条和形状的轮廓。
1、画笔具有:样式style()、宽度width()、画刷brush()、笔帽样式capStyle()和连接样式joinStyle()等属性。
2、画笔的样式style()定义了线的样式。
3、画刷brush()用于填充画笔所绘制的线条。
4、笔帽样式capStyle()定义了使用QPainter绘制的线的末端;连接样式joinStyle()则定义了两条线如何连接起来。
5、画笔宽度width()或widthF()定义了画笔的宽。(PS:不存在宽度为0的线。)假设你设置width为0, QPainter依然会绘制出一条线,而这个线的宽度为1像素。也就是说画笔宽度通常至少是1像素。
QBrush类定义了由QPainter绘制的形状的填充模式。
1、一个画刷具有样式(style)、颜色(color)、渐变(gradient)、文理(texture )四个可设置属性。
2、可能用到Brush的样式、颜色、填充方式(后两者是重点)
3、const QColor &QBrush::color() const 获取当前Brush颜色
4、void QBrush::setColor(const QColor &color) 设置当前Brush颜色
Constant | Value | Description |
---|---|---|
Qt::white | 3 | White(#ffffff) |
Qt::black | 2 | Black (#000000) |
Qt:: red | 7 | Red (#ff0000) |
Qt:: darkRed | 13 | Dark red (#800000) |
Qt: :green | 8 | Green (#00ff00) |
Qt:: darkGreen | 14 | Dark green (#008000) |
Qt::blue | 9 | Blue (#0000ff) |
Qt:: darkBlue | 15 | Dark blue (#000080) |
渐变(gradient )定义了渐变填充。当创建Qbrush时,可以在构造函数中传入一个渐变画笔对象用于构建画刷的渐变样式